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

Strict Trs:
  { minus(X1, X2) -> n__minus(X1, X2)
  , minus(n__0(), Y) -> 0()
  , minus(n__s(X), n__s(Y)) -> minus(activate(X), activate(Y))
  , 0() -> n__0()
  , activate(X) -> X
  , activate(n__0()) -> 0()
  , activate(n__s(X)) -> s(activate(X))
  , activate(n__div(X1, X2)) -> div(activate(X1), X2)
  , activate(n__minus(X1, X2)) -> minus(X1, X2)
  , geq(X, n__0()) -> true()
  , geq(n__0(), n__s(Y)) -> false()
  , geq(n__s(X), n__s(Y)) -> geq(activate(X), activate(Y))
  , div(X1, X2) -> n__div(X1, X2)
  , div(0(), n__s(Y)) -> 0()
  , div(s(X), n__s(Y)) ->
    if(geq(X, activate(Y)),
       n__s(n__div(n__minus(X, activate(Y)), n__s(activate(Y)))),
       n__0())
  , s(X) -> n__s(X)
  , if(true(), X, Y) -> activate(X)
  , if(false(), X, Y) -> activate(Y) }
Obligation:
  innermost runtime complexity
Answer:
  YES(O(1),O(n^2))

Arguments of following rules are not normal-forms:

{ div(0(), n__s(Y)) -> 0()
, div(s(X), n__s(Y)) ->
  if(geq(X, activate(Y)),
     n__s(n__div(n__minus(X, activate(Y)), n__s(activate(Y)))),
     n__0()) }

All above mentioned rules can be savely removed.

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

Strict Trs:
  { minus(X1, X2) -> n__minus(X1, X2)
  , minus(n__0(), Y) -> 0()
  , minus(n__s(X), n__s(Y)) -> minus(activate(X), activate(Y))
  , 0() -> n__0()
  , activate(X) -> X
  , activate(n__0()) -> 0()
  , activate(n__s(X)) -> s(activate(X))
  , activate(n__div(X1, X2)) -> div(activate(X1), X2)
  , activate(n__minus(X1, X2)) -> minus(X1, X2)
  , geq(X, n__0()) -> true()
  , geq(n__0(), n__s(Y)) -> false()
  , geq(n__s(X), n__s(Y)) -> geq(activate(X), activate(Y))
  , div(X1, X2) -> n__div(X1, X2)
  , s(X) -> n__s(X)
  , if(true(), X, Y) -> activate(X)
  , if(false(), X, Y) -> activate(Y) }
Obligation:
  innermost runtime complexity
Answer:
  YES(O(1),O(n^2))

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

The following argument positions are usable:
  Uargs(minus) = {1, 2}, Uargs(geq) = {1, 2}, Uargs(div) = {1},
  Uargs(s) = {1}

TcT has computed the following matrix interpretation satisfying
not(EDA) and not(IDA(1)).

     [minus](x1, x2) = [1] x1 + [1] x2 + [0]         
                                                     
              [n__0] = [0]                           
                                                     
                 [0] = [0]                           
                                                     
          [n__s](x1) = [1] x1 + [0]                  
                                                     
      [activate](x1) = [1] x1 + [0]                  
                                                     
       [geq](x1, x2) = [1] x1 + [1] x2 + [0]         
                                                     
              [true] = [4]                           
                                                     
             [false] = [0]                           
                                                     
       [div](x1, x2) = [1] x1 + [0]                  
                                                     
             [s](x1) = [1] x1 + [0]                  
                                                     
    [if](x1, x2, x3) = [1] x1 + [1] x2 + [1] x3 + [1]
                                                     
    [n__div](x1, x2) = [1] x1 + [0]                  
                                                     
  [n__minus](x1, x2) = [1] x1 + [1] x2 + [0]         

The order satisfies the following ordering constraints:

               [minus(X1, X2)] =  [1] X1 + [1] X2 + [0]            
                               >= [1] X1 + [1] X2 + [0]            
                               =  [n__minus(X1, X2)]               
                                                                   
            [minus(n__0(), Y)] =  [1] Y + [0]                      
                               >= [0]                              
                               =  [0()]                            
                                                                   
     [minus(n__s(X), n__s(Y))] =  [1] Y + [1] X + [0]              
                               >= [1] Y + [1] X + [0]              
                               =  [minus(activate(X), activate(Y))]
                                                                   
                         [0()] =  [0]                              
                               >= [0]                              
                               =  [n__0()]                         
                                                                   
                 [activate(X)] =  [1] X + [0]                      
                               >= [1] X + [0]                      
                               =  [X]                              
                                                                   
            [activate(n__0())] =  [0]                              
                               >= [0]                              
                               =  [0()]                            
                                                                   
           [activate(n__s(X))] =  [1] X + [0]                      
                               >= [1] X + [0]                      
                               =  [s(activate(X))]                 
                                                                   
    [activate(n__div(X1, X2))] =  [1] X1 + [0]                     
                               >= [1] X1 + [0]                     
                               =  [div(activate(X1), X2)]          
                                                                   
  [activate(n__minus(X1, X2))] =  [1] X1 + [1] X2 + [0]            
                               >= [1] X1 + [1] X2 + [0]            
                               =  [minus(X1, X2)]                  
                                                                   
              [geq(X, n__0())] =  [1] X + [0]                      
                               ?  [4]                              
                               =  [true()]                         
                                                                   
        [geq(n__0(), n__s(Y))] =  [1] Y + [0]                      
                               >= [0]                              
                               =  [false()]                        
                                                                   
       [geq(n__s(X), n__s(Y))] =  [1] Y + [1] X + [0]              
                               >= [1] Y + [1] X + [0]              
                               =  [geq(activate(X), activate(Y))]  
                                                                   
                 [div(X1, X2)] =  [1] X1 + [0]                     
                               >= [1] X1 + [0]                     
                               =  [n__div(X1, X2)]                 
                                                                   
                        [s(X)] =  [1] X + [0]                      
                               >= [1] X + [0]                      
                               =  [n__s(X)]                        
                                                                   
            [if(true(), X, Y)] =  [1] Y + [1] X + [5]              
                               >  [1] X + [0]                      
                               =  [activate(X)]                    
                                                                   
           [if(false(), X, Y)] =  [1] Y + [1] X + [1]              
                               >  [1] Y + [0]                      
                               =  [activate(Y)]                    
                                                                   

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(n^2)).

Strict Trs:
  { minus(X1, X2) -> n__minus(X1, X2)
  , minus(n__0(), Y) -> 0()
  , minus(n__s(X), n__s(Y)) -> minus(activate(X), activate(Y))
  , 0() -> n__0()
  , activate(X) -> X
  , activate(n__0()) -> 0()
  , activate(n__s(X)) -> s(activate(X))
  , activate(n__div(X1, X2)) -> div(activate(X1), X2)
  , activate(n__minus(X1, X2)) -> minus(X1, X2)
  , geq(X, n__0()) -> true()
  , geq(n__0(), n__s(Y)) -> false()
  , geq(n__s(X), n__s(Y)) -> geq(activate(X), activate(Y))
  , div(X1, X2) -> n__div(X1, X2)
  , s(X) -> n__s(X) }
Weak Trs:
  { if(true(), X, Y) -> activate(X)
  , if(false(), X, Y) -> activate(Y) }
Obligation:
  innermost runtime complexity
Answer:
  YES(O(1),O(n^2))

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

The following argument positions are usable:
  Uargs(minus) = {1, 2}, Uargs(geq) = {1, 2}, Uargs(div) = {1},
  Uargs(s) = {1}

TcT has computed the following matrix interpretation satisfying
not(EDA) and not(IDA(1)).

     [minus](x1, x2) = [1] x1 + [1] x2 + [4]         
                                                     
              [n__0] = [0]                           
                                                     
                 [0] = [0]                           
                                                     
          [n__s](x1) = [1] x1 + [0]                  
                                                     
      [activate](x1) = [1] x1 + [0]                  
                                                     
       [geq](x1, x2) = [1] x1 + [1] x2 + [0]         
                                                     
              [true] = [0]                           
                                                     
             [false] = [0]                           
                                                     
       [div](x1, x2) = [1] x1 + [0]                  
                                                     
             [s](x1) = [1] x1 + [0]                  
                                                     
    [if](x1, x2, x3) = [1] x1 + [1] x2 + [1] x3 + [5]
                                                     
    [n__div](x1, x2) = [1] x1 + [0]                  
                                                     
  [n__minus](x1, x2) = [1] x1 + [1] x2 + [0]         

The order satisfies the following ordering constraints:

               [minus(X1, X2)] =  [1] X1 + [1] X2 + [4]            
                               >  [1] X1 + [1] X2 + [0]            
                               =  [n__minus(X1, X2)]               
                                                                   
            [minus(n__0(), Y)] =  [1] Y + [4]                      
                               >  [0]                              
                               =  [0()]                            
                                                                   
     [minus(n__s(X), n__s(Y))] =  [1] Y + [1] X + [4]              
                               >= [1] Y + [1] X + [4]              
                               =  [minus(activate(X), activate(Y))]
                                                                   
                         [0()] =  [0]                              
                               >= [0]                              
                               =  [n__0()]                         
                                                                   
                 [activate(X)] =  [1] X + [0]                      
                               >= [1] X + [0]                      
                               =  [X]                              
                                                                   
            [activate(n__0())] =  [0]                              
                               >= [0]                              
                               =  [0()]                            
                                                                   
           [activate(n__s(X))] =  [1] X + [0]                      
                               >= [1] X + [0]                      
                               =  [s(activate(X))]                 
                                                                   
    [activate(n__div(X1, X2))] =  [1] X1 + [0]                     
                               >= [1] X1 + [0]                     
                               =  [div(activate(X1), X2)]          
                                                                   
  [activate(n__minus(X1, X2))] =  [1] X1 + [1] X2 + [0]            
                               ?  [1] X1 + [1] X2 + [4]            
                               =  [minus(X1, X2)]                  
                                                                   
              [geq(X, n__0())] =  [1] X + [0]                      
                               >= [0]                              
                               =  [true()]                         
                                                                   
        [geq(n__0(), n__s(Y))] =  [1] Y + [0]                      
                               >= [0]                              
                               =  [false()]                        
                                                                   
       [geq(n__s(X), n__s(Y))] =  [1] Y + [1] X + [0]              
                               >= [1] Y + [1] X + [0]              
                               =  [geq(activate(X), activate(Y))]  
                                                                   
                 [div(X1, X2)] =  [1] X1 + [0]                     
                               >= [1] X1 + [0]                     
                               =  [n__div(X1, X2)]                 
                                                                   
                        [s(X)] =  [1] X + [0]                      
                               >= [1] X + [0]                      
                               =  [n__s(X)]                        
                                                                   
            [if(true(), X, Y)] =  [1] Y + [1] X + [5]              
                               >  [1] X + [0]                      
                               =  [activate(X)]                    
                                                                   
           [if(false(), X, Y)] =  [1] Y + [1] X + [5]              
                               >  [1] Y + [0]                      
                               =  [activate(Y)]                    
                                                                   

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(n^2)).

Strict Trs:
  { minus(n__s(X), n__s(Y)) -> minus(activate(X), activate(Y))
  , 0() -> n__0()
  , activate(X) -> X
  , activate(n__0()) -> 0()
  , activate(n__s(X)) -> s(activate(X))
  , activate(n__div(X1, X2)) -> div(activate(X1), X2)
  , activate(n__minus(X1, X2)) -> minus(X1, X2)
  , geq(X, n__0()) -> true()
  , geq(n__0(), n__s(Y)) -> false()
  , geq(n__s(X), n__s(Y)) -> geq(activate(X), activate(Y))
  , div(X1, X2) -> n__div(X1, X2)
  , s(X) -> n__s(X) }
Weak Trs:
  { minus(X1, X2) -> n__minus(X1, X2)
  , minus(n__0(), Y) -> 0()
  , if(true(), X, Y) -> activate(X)
  , if(false(), X, Y) -> activate(Y) }
Obligation:
  innermost runtime complexity
Answer:
  YES(O(1),O(n^2))

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

The following argument positions are usable:
  Uargs(minus) = {1, 2}, Uargs(geq) = {1, 2}, Uargs(div) = {1},
  Uargs(s) = {1}

TcT has computed the following matrix interpretation satisfying
not(EDA) and not(IDA(1)).

     [minus](x1, x2) = [1] x1 + [1] x2 + [4]         
                                                     
              [n__0] = [0]                           
                                                     
                 [0] = [2]                           
                                                     
          [n__s](x1) = [1] x1 + [0]                  
                                                     
      [activate](x1) = [1] x1 + [0]                  
                                                     
       [geq](x1, x2) = [1] x1 + [1] x2 + [0]         
                                                     
              [true] = [0]                           
                                                     
             [false] = [0]                           
                                                     
       [div](x1, x2) = [1] x1 + [0]                  
                                                     
             [s](x1) = [1] x1 + [0]                  
                                                     
    [if](x1, x2, x3) = [1] x1 + [1] x2 + [1] x3 + [5]
                                                     
    [n__div](x1, x2) = [1] x1 + [0]                  
                                                     
  [n__minus](x1, x2) = [1] x1 + [1] x2 + [0]         

The order satisfies the following ordering constraints:

               [minus(X1, X2)] =  [1] X1 + [1] X2 + [4]            
                               >  [1] X1 + [1] X2 + [0]            
                               =  [n__minus(X1, X2)]               
                                                                   
            [minus(n__0(), Y)] =  [1] Y + [4]                      
                               >  [2]                              
                               =  [0()]                            
                                                                   
     [minus(n__s(X), n__s(Y))] =  [1] Y + [1] X + [4]              
                               >= [1] Y + [1] X + [4]              
                               =  [minus(activate(X), activate(Y))]
                                                                   
                         [0()] =  [2]                              
                               >  [0]                              
                               =  [n__0()]                         
                                                                   
                 [activate(X)] =  [1] X + [0]                      
                               >= [1] X + [0]                      
                               =  [X]                              
                                                                   
            [activate(n__0())] =  [0]                              
                               ?  [2]                              
                               =  [0()]                            
                                                                   
           [activate(n__s(X))] =  [1] X + [0]                      
                               >= [1] X + [0]                      
                               =  [s(activate(X))]                 
                                                                   
    [activate(n__div(X1, X2))] =  [1] X1 + [0]                     
                               >= [1] X1 + [0]                     
                               =  [div(activate(X1), X2)]          
                                                                   
  [activate(n__minus(X1, X2))] =  [1] X1 + [1] X2 + [0]            
                               ?  [1] X1 + [1] X2 + [4]            
                               =  [minus(X1, X2)]                  
                                                                   
              [geq(X, n__0())] =  [1] X + [0]                      
                               >= [0]                              
                               =  [true()]                         
                                                                   
        [geq(n__0(), n__s(Y))] =  [1] Y + [0]                      
                               >= [0]                              
                               =  [false()]                        
                                                                   
       [geq(n__s(X), n__s(Y))] =  [1] Y + [1] X + [0]              
                               >= [1] Y + [1] X + [0]              
                               =  [geq(activate(X), activate(Y))]  
                                                                   
                 [div(X1, X2)] =  [1] X1 + [0]                     
                               >= [1] X1 + [0]                     
                               =  [n__div(X1, X2)]                 
                                                                   
                        [s(X)] =  [1] X + [0]                      
                               >= [1] X + [0]                      
                               =  [n__s(X)]                        
                                                                   
            [if(true(), X, Y)] =  [1] Y + [1] X + [5]              
                               >  [1] X + [0]                      
                               =  [activate(X)]                    
                                                                   
           [if(false(), X, Y)] =  [1] Y + [1] X + [5]              
                               >  [1] Y + [0]                      
                               =  [activate(Y)]                    
                                                                   

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(n^2)).

Strict Trs:
  { minus(n__s(X), n__s(Y)) -> minus(activate(X), activate(Y))
  , activate(X) -> X
  , activate(n__0()) -> 0()
  , activate(n__s(X)) -> s(activate(X))
  , activate(n__div(X1, X2)) -> div(activate(X1), X2)
  , activate(n__minus(X1, X2)) -> minus(X1, X2)
  , geq(X, n__0()) -> true()
  , geq(n__0(), n__s(Y)) -> false()
  , geq(n__s(X), n__s(Y)) -> geq(activate(X), activate(Y))
  , div(X1, X2) -> n__div(X1, X2)
  , s(X) -> n__s(X) }
Weak Trs:
  { minus(X1, X2) -> n__minus(X1, X2)
  , minus(n__0(), Y) -> 0()
  , 0() -> n__0()
  , if(true(), X, Y) -> activate(X)
  , if(false(), X, Y) -> activate(Y) }
Obligation:
  innermost runtime complexity
Answer:
  YES(O(1),O(n^2))

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

The following argument positions are usable:
  Uargs(minus) = {1, 2}, Uargs(geq) = {1, 2}, Uargs(div) = {1},
  Uargs(s) = {1}

TcT has computed the following matrix interpretation satisfying
not(EDA) and not(IDA(1)).

     [minus](x1, x2) = [1] x1 + [1] x2 + [4]         
                                                     
              [n__0] = [0]                           
                                                     
                 [0] = [4]                           
                                                     
          [n__s](x1) = [1] x1 + [0]                  
                                                     
      [activate](x1) = [1] x1 + [0]                  
                                                     
       [geq](x1, x2) = [1] x1 + [1] x2 + [0]         
                                                     
              [true] = [0]                           
                                                     
             [false] = [0]                           
                                                     
       [div](x1, x2) = [1] x1 + [0]                  
                                                     
             [s](x1) = [1] x1 + [0]                  
                                                     
    [if](x1, x2, x3) = [1] x1 + [1] x2 + [1] x3 + [5]
                                                     
    [n__div](x1, x2) = [1] x1 + [1]                  
                                                     
  [n__minus](x1, x2) = [1] x1 + [1] x2 + [0]         

The order satisfies the following ordering constraints:

               [minus(X1, X2)] =  [1] X1 + [1] X2 + [4]            
                               >  [1] X1 + [1] X2 + [0]            
                               =  [n__minus(X1, X2)]               
                                                                   
            [minus(n__0(), Y)] =  [1] Y + [4]                      
                               >= [4]                              
                               =  [0()]                            
                                                                   
     [minus(n__s(X), n__s(Y))] =  [1] Y + [1] X + [4]              
                               >= [1] Y + [1] X + [4]              
                               =  [minus(activate(X), activate(Y))]
                                                                   
                         [0()] =  [4]                              
                               >  [0]                              
                               =  [n__0()]                         
                                                                   
                 [activate(X)] =  [1] X + [0]                      
                               >= [1] X + [0]                      
                               =  [X]                              
                                                                   
            [activate(n__0())] =  [0]                              
                               ?  [4]                              
                               =  [0()]                            
                                                                   
           [activate(n__s(X))] =  [1] X + [0]                      
                               >= [1] X + [0]                      
                               =  [s(activate(X))]                 
                                                                   
    [activate(n__div(X1, X2))] =  [1] X1 + [1]                     
                               >  [1] X1 + [0]                     
                               =  [div(activate(X1), X2)]          
                                                                   
  [activate(n__minus(X1, X2))] =  [1] X1 + [1] X2 + [0]            
                               ?  [1] X1 + [1] X2 + [4]            
                               =  [minus(X1, X2)]                  
                                                                   
              [geq(X, n__0())] =  [1] X + [0]                      
                               >= [0]                              
                               =  [true()]                         
                                                                   
        [geq(n__0(), n__s(Y))] =  [1] Y + [0]                      
                               >= [0]                              
                               =  [false()]                        
                                                                   
       [geq(n__s(X), n__s(Y))] =  [1] Y + [1] X + [0]              
                               >= [1] Y + [1] X + [0]              
                               =  [geq(activate(X), activate(Y))]  
                                                                   
                 [div(X1, X2)] =  [1] X1 + [0]                     
                               ?  [1] X1 + [1]                     
                               =  [n__div(X1, X2)]                 
                                                                   
                        [s(X)] =  [1] X + [0]                      
                               >= [1] X + [0]                      
                               =  [n__s(X)]                        
                                                                   
            [if(true(), X, Y)] =  [1] Y + [1] X + [5]              
                               >  [1] X + [0]                      
                               =  [activate(X)]                    
                                                                   
           [if(false(), X, Y)] =  [1] Y + [1] X + [5]              
                               >  [1] Y + [0]                      
                               =  [activate(Y)]                    
                                                                   

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(n^2)).

Strict Trs:
  { minus(n__s(X), n__s(Y)) -> minus(activate(X), activate(Y))
  , activate(X) -> X
  , activate(n__0()) -> 0()
  , activate(n__s(X)) -> s(activate(X))
  , activate(n__minus(X1, X2)) -> minus(X1, X2)
  , geq(X, n__0()) -> true()
  , geq(n__0(), n__s(Y)) -> false()
  , geq(n__s(X), n__s(Y)) -> geq(activate(X), activate(Y))
  , div(X1, X2) -> n__div(X1, X2)
  , s(X) -> n__s(X) }
Weak Trs:
  { minus(X1, X2) -> n__minus(X1, X2)
  , minus(n__0(), Y) -> 0()
  , 0() -> n__0()
  , activate(n__div(X1, X2)) -> div(activate(X1), X2)
  , if(true(), X, Y) -> activate(X)
  , if(false(), X, Y) -> activate(Y) }
Obligation:
  innermost runtime complexity
Answer:
  YES(O(1),O(n^2))

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

The following argument positions are usable:
  Uargs(minus) = {1, 2}, Uargs(geq) = {1, 2}, Uargs(div) = {1},
  Uargs(s) = {1}

TcT has computed the following matrix interpretation satisfying
not(EDA) and not(IDA(1)).

     [minus](x1, x2) = [1] x1 + [1] x2 + [4]         
                                                     
              [n__0] = [2]                           
                                                     
                 [0] = [4]                           
                                                     
          [n__s](x1) = [1] x1 + [2]                  
                                                     
      [activate](x1) = [1] x1 + [2]                  
                                                     
       [geq](x1, x2) = [1] x1 + [1] x2 + [0]         
                                                     
              [true] = [0]                           
                                                     
             [false] = [0]                           
                                                     
       [div](x1, x2) = [1] x1 + [6]                  
                                                     
             [s](x1) = [1] x1 + [6]                  
                                                     
    [if](x1, x2, x3) = [1] x1 + [1] x2 + [1] x3 + [7]
                                                     
    [n__div](x1, x2) = [1] x1 + [7]                  
                                                     
  [n__minus](x1, x2) = [1] x1 + [1] x2 + [2]         

The order satisfies the following ordering constraints:

               [minus(X1, X2)] =  [1] X1 + [1] X2 + [4]            
                               >  [1] X1 + [1] X2 + [2]            
                               =  [n__minus(X1, X2)]               
                                                                   
            [minus(n__0(), Y)] =  [1] Y + [6]                      
                               >  [4]                              
                               =  [0()]                            
                                                                   
     [minus(n__s(X), n__s(Y))] =  [1] Y + [1] X + [8]              
                               >= [1] Y + [1] X + [8]              
                               =  [minus(activate(X), activate(Y))]
                                                                   
                         [0()] =  [4]                              
                               >  [2]                              
                               =  [n__0()]                         
                                                                   
                 [activate(X)] =  [1] X + [2]                      
                               >  [1] X + [0]                      
                               =  [X]                              
                                                                   
            [activate(n__0())] =  [4]                              
                               >= [4]                              
                               =  [0()]                            
                                                                   
           [activate(n__s(X))] =  [1] X + [4]                      
                               ?  [1] X + [8]                      
                               =  [s(activate(X))]                 
                                                                   
    [activate(n__div(X1, X2))] =  [1] X1 + [9]                     
                               >  [1] X1 + [8]                     
                               =  [div(activate(X1), X2)]          
                                                                   
  [activate(n__minus(X1, X2))] =  [1] X1 + [1] X2 + [4]            
                               >= [1] X1 + [1] X2 + [4]            
                               =  [minus(X1, X2)]                  
                                                                   
              [geq(X, n__0())] =  [1] X + [2]                      
                               >  [0]                              
                               =  [true()]                         
                                                                   
        [geq(n__0(), n__s(Y))] =  [1] Y + [4]                      
                               >  [0]                              
                               =  [false()]                        
                                                                   
       [geq(n__s(X), n__s(Y))] =  [1] Y + [1] X + [4]              
                               >= [1] Y + [1] X + [4]              
                               =  [geq(activate(X), activate(Y))]  
                                                                   
                 [div(X1, X2)] =  [1] X1 + [6]                     
                               ?  [1] X1 + [7]                     
                               =  [n__div(X1, X2)]                 
                                                                   
                        [s(X)] =  [1] X + [6]                      
                               >  [1] X + [2]                      
                               =  [n__s(X)]                        
                                                                   
            [if(true(), X, Y)] =  [1] Y + [1] X + [7]              
                               >  [1] X + [2]                      
                               =  [activate(X)]                    
                                                                   
           [if(false(), X, Y)] =  [1] Y + [1] X + [7]              
                               >  [1] Y + [2]                      
                               =  [activate(Y)]                    
                                                                   

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(n^2)).

Strict Trs:
  { minus(n__s(X), n__s(Y)) -> minus(activate(X), activate(Y))
  , activate(n__0()) -> 0()
  , activate(n__s(X)) -> s(activate(X))
  , activate(n__minus(X1, X2)) -> minus(X1, X2)
  , geq(n__s(X), n__s(Y)) -> geq(activate(X), activate(Y))
  , div(X1, X2) -> n__div(X1, X2) }
Weak Trs:
  { minus(X1, X2) -> n__minus(X1, X2)
  , minus(n__0(), Y) -> 0()
  , 0() -> n__0()
  , activate(X) -> X
  , activate(n__div(X1, X2)) -> div(activate(X1), X2)
  , geq(X, n__0()) -> true()
  , geq(n__0(), n__s(Y)) -> false()
  , s(X) -> n__s(X)
  , if(true(), X, Y) -> activate(X)
  , if(false(), X, Y) -> activate(Y) }
Obligation:
  innermost runtime complexity
Answer:
  YES(O(1),O(n^2))

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

The following argument positions are usable:
  Uargs(minus) = {1, 2}, Uargs(geq) = {1, 2}, Uargs(div) = {1},
  Uargs(s) = {1}

TcT has computed the following matrix interpretation satisfying
not(EDA) and not(IDA(1)).

     [minus](x1, x2) = [1] x1 + [1] x2 + [4]         
                                                     
              [n__0] = [6]                           
                                                     
                 [0] = [6]                           
                                                     
          [n__s](x1) = [1] x1 + [0]                  
                                                     
      [activate](x1) = [1] x1 + [3]                  
                                                     
       [geq](x1, x2) = [1] x1 + [1] x2 + [6]         
                                                     
              [true] = [0]                           
                                                     
             [false] = [2]                           
                                                     
       [div](x1, x2) = [1] x1 + [0]                  
                                                     
             [s](x1) = [1] x1 + [0]                  
                                                     
    [if](x1, x2, x3) = [1] x1 + [1] x2 + [1] x3 + [7]
                                                     
    [n__div](x1, x2) = [1] x1 + [0]                  
                                                     
  [n__minus](x1, x2) = [1] x1 + [1] x2 + [2]         

The order satisfies the following ordering constraints:

               [minus(X1, X2)] =  [1] X1 + [1] X2 + [4]            
                               >  [1] X1 + [1] X2 + [2]            
                               =  [n__minus(X1, X2)]               
                                                                   
            [minus(n__0(), Y)] =  [1] Y + [10]                     
                               >  [6]                              
                               =  [0()]                            
                                                                   
     [minus(n__s(X), n__s(Y))] =  [1] Y + [1] X + [4]              
                               ?  [1] Y + [1] X + [10]             
                               =  [minus(activate(X), activate(Y))]
                                                                   
                         [0()] =  [6]                              
                               >= [6]                              
                               =  [n__0()]                         
                                                                   
                 [activate(X)] =  [1] X + [3]                      
                               >  [1] X + [0]                      
                               =  [X]                              
                                                                   
            [activate(n__0())] =  [9]                              
                               >  [6]                              
                               =  [0()]                            
                                                                   
           [activate(n__s(X))] =  [1] X + [3]                      
                               >= [1] X + [3]                      
                               =  [s(activate(X))]                 
                                                                   
    [activate(n__div(X1, X2))] =  [1] X1 + [3]                     
                               >= [1] X1 + [3]                     
                               =  [div(activate(X1), X2)]          
                                                                   
  [activate(n__minus(X1, X2))] =  [1] X1 + [1] X2 + [5]            
                               >  [1] X1 + [1] X2 + [4]            
                               =  [minus(X1, X2)]                  
                                                                   
              [geq(X, n__0())] =  [1] X + [12]                     
                               >  [0]                              
                               =  [true()]                         
                                                                   
        [geq(n__0(), n__s(Y))] =  [1] Y + [12]                     
                               >  [2]                              
                               =  [false()]                        
                                                                   
       [geq(n__s(X), n__s(Y))] =  [1] Y + [1] X + [6]              
                               ?  [1] Y + [1] X + [12]             
                               =  [geq(activate(X), activate(Y))]  
                                                                   
                 [div(X1, X2)] =  [1] X1 + [0]                     
                               >= [1] X1 + [0]                     
                               =  [n__div(X1, X2)]                 
                                                                   
                        [s(X)] =  [1] X + [0]                      
                               >= [1] X + [0]                      
                               =  [n__s(X)]                        
                                                                   
            [if(true(), X, Y)] =  [1] Y + [1] X + [7]              
                               >  [1] X + [3]                      
                               =  [activate(X)]                    
                                                                   
           [if(false(), X, Y)] =  [1] Y + [1] X + [9]              
                               >  [1] Y + [3]                      
                               =  [activate(Y)]                    
                                                                   

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(n^2)).

Strict Trs:
  { minus(n__s(X), n__s(Y)) -> minus(activate(X), activate(Y))
  , activate(n__s(X)) -> s(activate(X))
  , geq(n__s(X), n__s(Y)) -> geq(activate(X), activate(Y))
  , div(X1, X2) -> n__div(X1, X2) }
Weak Trs:
  { minus(X1, X2) -> n__minus(X1, X2)
  , minus(n__0(), Y) -> 0()
  , 0() -> n__0()
  , activate(X) -> X
  , activate(n__0()) -> 0()
  , activate(n__div(X1, X2)) -> div(activate(X1), X2)
  , activate(n__minus(X1, X2)) -> minus(X1, X2)
  , geq(X, n__0()) -> true()
  , geq(n__0(), n__s(Y)) -> false()
  , s(X) -> n__s(X)
  , if(true(), X, Y) -> activate(X)
  , if(false(), X, Y) -> activate(Y) }
Obligation:
  innermost runtime complexity
Answer:
  YES(O(1),O(n^2))

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

The following argument positions are usable:
  Uargs(minus) = {1, 2}, Uargs(geq) = {1, 2}, Uargs(div) = {1},
  Uargs(s) = {1}

TcT has computed the following matrix interpretation satisfying
not(EDA) and not(IDA(1)).

     [minus](x1, x2) = [1] x1 + [1] x2 + [4]         
                                                     
              [n__0] = [3]                           
                                                     
                 [0] = [4]                           
                                                     
          [n__s](x1) = [1] x1 + [2]                  
                                                     
      [activate](x1) = [1] x1 + [1]                  
                                                     
       [geq](x1, x2) = [1] x1 + [1] x2 + [6]         
                                                     
              [true] = [0]                           
                                                     
             [false] = [0]                           
                                                     
       [div](x1, x2) = [1] x1 + [0]                  
                                                     
             [s](x1) = [1] x1 + [2]                  
                                                     
    [if](x1, x2, x3) = [1] x1 + [1] x2 + [1] x3 + [4]
                                                     
    [n__div](x1, x2) = [1] x1 + [0]                  
                                                     
  [n__minus](x1, x2) = [1] x1 + [1] x2 + [4]         

The order satisfies the following ordering constraints:

               [minus(X1, X2)] =  [1] X1 + [1] X2 + [4]            
                               >= [1] X1 + [1] X2 + [4]            
                               =  [n__minus(X1, X2)]               
                                                                   
            [minus(n__0(), Y)] =  [1] Y + [7]                      
                               >  [4]                              
                               =  [0()]                            
                                                                   
     [minus(n__s(X), n__s(Y))] =  [1] Y + [1] X + [8]              
                               >  [1] Y + [1] X + [6]              
                               =  [minus(activate(X), activate(Y))]
                                                                   
                         [0()] =  [4]                              
                               >  [3]                              
                               =  [n__0()]                         
                                                                   
                 [activate(X)] =  [1] X + [1]                      
                               >  [1] X + [0]                      
                               =  [X]                              
                                                                   
            [activate(n__0())] =  [4]                              
                               >= [4]                              
                               =  [0()]                            
                                                                   
           [activate(n__s(X))] =  [1] X + [3]                      
                               >= [1] X + [3]                      
                               =  [s(activate(X))]                 
                                                                   
    [activate(n__div(X1, X2))] =  [1] X1 + [1]                     
                               >= [1] X1 + [1]                     
                               =  [div(activate(X1), X2)]          
                                                                   
  [activate(n__minus(X1, X2))] =  [1] X1 + [1] X2 + [5]            
                               >  [1] X1 + [1] X2 + [4]            
                               =  [minus(X1, X2)]                  
                                                                   
              [geq(X, n__0())] =  [1] X + [9]                      
                               >  [0]                              
                               =  [true()]                         
                                                                   
        [geq(n__0(), n__s(Y))] =  [1] Y + [11]                     
                               >  [0]                              
                               =  [false()]                        
                                                                   
       [geq(n__s(X), n__s(Y))] =  [1] Y + [1] X + [10]             
                               >  [1] Y + [1] X + [8]              
                               =  [geq(activate(X), activate(Y))]  
                                                                   
                 [div(X1, X2)] =  [1] X1 + [0]                     
                               >= [1] X1 + [0]                     
                               =  [n__div(X1, X2)]                 
                                                                   
                        [s(X)] =  [1] X + [2]                      
                               >= [1] X + [2]                      
                               =  [n__s(X)]                        
                                                                   
            [if(true(), X, Y)] =  [1] Y + [1] X + [4]              
                               >  [1] X + [1]                      
                               =  [activate(X)]                    
                                                                   
           [if(false(), X, Y)] =  [1] Y + [1] X + [4]              
                               >  [1] Y + [1]                      
                               =  [activate(Y)]                    
                                                                   

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(n^2)).

Strict Trs:
  { activate(n__s(X)) -> s(activate(X))
  , div(X1, X2) -> n__div(X1, X2) }
Weak Trs:
  { minus(X1, X2) -> n__minus(X1, X2)
  , minus(n__0(), Y) -> 0()
  , minus(n__s(X), n__s(Y)) -> minus(activate(X), activate(Y))
  , 0() -> n__0()
  , activate(X) -> X
  , activate(n__0()) -> 0()
  , activate(n__div(X1, X2)) -> div(activate(X1), X2)
  , activate(n__minus(X1, X2)) -> minus(X1, X2)
  , geq(X, n__0()) -> true()
  , geq(n__0(), n__s(Y)) -> false()
  , geq(n__s(X), n__s(Y)) -> geq(activate(X), activate(Y))
  , s(X) -> n__s(X)
  , if(true(), X, Y) -> activate(X)
  , if(false(), X, Y) -> activate(Y) }
Obligation:
  innermost runtime complexity
Answer:
  YES(O(1),O(n^2))

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

Trs: { div(X1, X2) -> n__div(X1, X2) }

The induced complexity on above rules (modulo remaining rules) is
YES(?,O(n^2)) . These rules are moved into the corresponding weak
component(s).

Sub-proof:
----------
  The following argument positions are usable:
    Uargs(minus) = {1, 2}, Uargs(geq) = {1, 2}, Uargs(div) = {1},
    Uargs(s) = {1}
  
  TcT has computed the following constructor-based matrix
  interpretation satisfying not(EDA).
  
       [minus](x1, x2) = [1 0] x1 + [1 0] x2 + [0]           
                         [0 0]      [0 0]      [4]           
                                                             
                [n__0] = [0]                                 
                         [0]                                 
                                                             
                   [0] = [0]                                 
                         [0]                                 
                                                             
            [n__s](x1) = [1 1] x1 + [6]                      
                         [0 1]      [0]                      
                                                             
        [activate](x1) = [1 1] x1 + [5]                      
                         [0 1]      [0]                      
                                                             
         [geq](x1, x2) = [1 0] x1 + [1 0] x2 + [0]           
                         [0 0]      [0 0]      [4]           
                                                             
                [true] = [0]                                 
                         [4]                                 
                                                             
               [false] = [0]                                 
                         [4]                                 
                                                             
         [div](x1, x2) = [1 0] x1 + [4]                      
                         [0 1]      [4]                      
                                                             
               [s](x1) = [1 1] x1 + [6]                      
                         [0 1]      [0]                      
                                                             
      [if](x1, x2, x3) = [0 2] x1 + [7 7] x2 + [7 7] x3 + [1]
                         [0 0]      [7 7]      [7 7]      [5]
                                                             
      [n__div](x1, x2) = [1 0] x1 + [3]                      
                         [0 1]      [4]                      
                                                             
    [n__minus](x1, x2) = [1 0] x1 + [1 0] x2 + [0]           
                         [0 0]      [0 0]      [4]           
  
  The order satisfies the following ordering constraints:
  
                 [minus(X1, X2)] =  [1 0] X1 + [1 0] X2 + [0]        
                                    [0 0]      [0 0]      [4]        
                                 >= [1 0] X1 + [1 0] X2 + [0]        
                                    [0 0]      [0 0]      [4]        
                                 =  [n__minus(X1, X2)]               
                                                                     
              [minus(n__0(), Y)] =  [1 0] Y + [0]                    
                                    [0 0]     [4]                    
                                 >= [0]                              
                                    [0]                              
                                 =  [0()]                            
                                                                     
       [minus(n__s(X), n__s(Y))] =  [1 1] Y + [1 1] X + [12]         
                                    [0 0]     [0 0]     [4]          
                                 >  [1 1] Y + [1 1] X + [10]         
                                    [0 0]     [0 0]     [4]          
                                 =  [minus(activate(X), activate(Y))]
                                                                     
                           [0()] =  [0]                              
                                    [0]                              
                                 >= [0]                              
                                    [0]                              
                                 =  [n__0()]                         
                                                                     
                   [activate(X)] =  [1 1] X + [5]                    
                                    [0 1]     [0]                    
                                 >  [1 0] X + [0]                    
                                    [0 1]     [0]                    
                                 =  [X]                              
                                                                     
              [activate(n__0())] =  [5]                              
                                    [0]                              
                                 >  [0]                              
                                    [0]                              
                                 =  [0()]                            
                                                                     
             [activate(n__s(X))] =  [1 2] X + [11]                   
                                    [0 1]     [0]                    
                                 >= [1 2] X + [11]                   
                                    [0 1]     [0]                    
                                 =  [s(activate(X))]                 
                                                                     
      [activate(n__div(X1, X2))] =  [1 1] X1 + [12]                  
                                    [0 1]      [4]                   
                                 >  [1 1] X1 + [9]                   
                                    [0 1]      [4]                   
                                 =  [div(activate(X1), X2)]          
                                                                     
    [activate(n__minus(X1, X2))] =  [1 0] X1 + [1 0] X2 + [9]        
                                    [0 0]      [0 0]      [4]        
                                 >  [1 0] X1 + [1 0] X2 + [0]        
                                    [0 0]      [0 0]      [4]        
                                 =  [minus(X1, X2)]                  
                                                                     
                [geq(X, n__0())] =  [1 0] X + [0]                    
                                    [0 0]     [4]                    
                                 >= [0]                              
                                    [4]                              
                                 =  [true()]                         
                                                                     
          [geq(n__0(), n__s(Y))] =  [1 1] Y + [6]                    
                                    [0 0]     [4]                    
                                 >  [0]                              
                                    [4]                              
                                 =  [false()]                        
                                                                     
         [geq(n__s(X), n__s(Y))] =  [1 1] Y + [1 1] X + [12]         
                                    [0 0]     [0 0]     [4]          
                                 >  [1 1] Y + [1 1] X + [10]         
                                    [0 0]     [0 0]     [4]          
                                 =  [geq(activate(X), activate(Y))]  
                                                                     
                   [div(X1, X2)] =  [1 0] X1 + [4]                   
                                    [0 1]      [4]                   
                                 >  [1 0] X1 + [3]                   
                                    [0 1]      [4]                   
                                 =  [n__div(X1, X2)]                 
                                                                     
                          [s(X)] =  [1 1] X + [6]                    
                                    [0 1]     [0]                    
                                 >= [1 1] X + [6]                    
                                    [0 1]     [0]                    
                                 =  [n__s(X)]                        
                                                                     
              [if(true(), X, Y)] =  [7 7] Y + [7 7] X + [9]          
                                    [7 7]     [7 7]     [5]          
                                 >  [1 1] X + [5]                    
                                    [0 1]     [0]                    
                                 =  [activate(X)]                    
                                                                     
             [if(false(), X, Y)] =  [7 7] Y + [7 7] X + [9]          
                                    [7 7]     [7 7]     [5]          
                                 >  [1 1] Y + [5]                    
                                    [0 1]     [0]                    
                                 =  [activate(Y)]                    
                                                                     

We return to the main proof.

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

Strict Trs: { activate(n__s(X)) -> s(activate(X)) }
Weak Trs:
  { minus(X1, X2) -> n__minus(X1, X2)
  , minus(n__0(), Y) -> 0()
  , minus(n__s(X), n__s(Y)) -> minus(activate(X), activate(Y))
  , 0() -> n__0()
  , activate(X) -> X
  , activate(n__0()) -> 0()
  , activate(n__div(X1, X2)) -> div(activate(X1), X2)
  , activate(n__minus(X1, X2)) -> minus(X1, X2)
  , geq(X, n__0()) -> true()
  , geq(n__0(), n__s(Y)) -> false()
  , geq(n__s(X), n__s(Y)) -> geq(activate(X), activate(Y))
  , div(X1, X2) -> n__div(X1, X2)
  , s(X) -> n__s(X)
  , if(true(), X, Y) -> activate(X)
  , if(false(), X, Y) -> activate(Y) }
Obligation:
  innermost runtime complexity
Answer:
  YES(O(1),O(n^2))

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

Trs: { activate(n__s(X)) -> s(activate(X)) }

The induced complexity on above rules (modulo remaining rules) is
YES(?,O(n^2)) . These rules are moved into the corresponding weak
component(s).

Sub-proof:
----------
  The following argument positions are usable:
    Uargs(minus) = {1, 2}, Uargs(geq) = {1, 2}, Uargs(div) = {1},
    Uargs(s) = {1}
  
  TcT has computed the following constructor-based matrix
  interpretation satisfying not(EDA).
  
       [minus](x1, x2) = [1 0] x1 + [1 0] x2 + [0]
                         [0 0]      [0 0]      [0]
                                                  
                [n__0] = [0]                      
                         [0]                      
                                                  
                   [0] = [0]                      
                         [0]                      
                                                  
            [n__s](x1) = [1 1] x1 + [0]           
                         [0 1]      [1]           
                                                  
        [activate](x1) = [1 1] x1 + [0]           
                         [0 1]      [0]           
                                                  
         [geq](x1, x2) = [1 0] x1 + [1 0] x2 + [0]
                         [0 0]      [0 0]      [0]
                                                  
                [true] = [0]                      
                         [0]                      
                                                  
               [false] = [0]                      
                         [0]                      
                                                  
         [div](x1, x2) = [1 0] x1 + [0]           
                         [0 1]      [0]           
                                                  
               [s](x1) = [1 1] x1 + [0]           
                         [0 1]      [1]           
                                                  
      [if](x1, x2, x3) = [7 7] x2 + [7 7] x3 + [0]
                         [7 7]      [7 7]      [0]
                                                  
      [n__div](x1, x2) = [1 0] x1 + [0]           
                         [0 1]      [0]           
                                                  
    [n__minus](x1, x2) = [1 0] x1 + [1 0] x2 + [0]
                         [0 0]      [0 0]      [0]
  
  The order satisfies the following ordering constraints:
  
                 [minus(X1, X2)] =  [1 0] X1 + [1 0] X2 + [0]        
                                    [0 0]      [0 0]      [0]        
                                 >= [1 0] X1 + [1 0] X2 + [0]        
                                    [0 0]      [0 0]      [0]        
                                 =  [n__minus(X1, X2)]               
                                                                     
              [minus(n__0(), Y)] =  [1 0] Y + [0]                    
                                    [0 0]     [0]                    
                                 >= [0]                              
                                    [0]                              
                                 =  [0()]                            
                                                                     
       [minus(n__s(X), n__s(Y))] =  [1 1] Y + [1 1] X + [0]          
                                    [0 0]     [0 0]     [0]          
                                 >= [1 1] Y + [1 1] X + [0]          
                                    [0 0]     [0 0]     [0]          
                                 =  [minus(activate(X), activate(Y))]
                                                                     
                           [0()] =  [0]                              
                                    [0]                              
                                 >= [0]                              
                                    [0]                              
                                 =  [n__0()]                         
                                                                     
                   [activate(X)] =  [1 1] X + [0]                    
                                    [0 1]     [0]                    
                                 >= [1 0] X + [0]                    
                                    [0 1]     [0]                    
                                 =  [X]                              
                                                                     
              [activate(n__0())] =  [0]                              
                                    [0]                              
                                 >= [0]                              
                                    [0]                              
                                 =  [0()]                            
                                                                     
             [activate(n__s(X))] =  [1 2] X + [1]                    
                                    [0 1]     [1]                    
                                 >  [1 2] X + [0]                    
                                    [0 1]     [1]                    
                                 =  [s(activate(X))]                 
                                                                     
      [activate(n__div(X1, X2))] =  [1 1] X1 + [0]                   
                                    [0 1]      [0]                   
                                 >= [1 1] X1 + [0]                   
                                    [0 1]      [0]                   
                                 =  [div(activate(X1), X2)]          
                                                                     
    [activate(n__minus(X1, X2))] =  [1 0] X1 + [1 0] X2 + [0]        
                                    [0 0]      [0 0]      [0]        
                                 >= [1 0] X1 + [1 0] X2 + [0]        
                                    [0 0]      [0 0]      [0]        
                                 =  [minus(X1, X2)]                  
                                                                     
                [geq(X, n__0())] =  [1 0] X + [0]                    
                                    [0 0]     [0]                    
                                 >= [0]                              
                                    [0]                              
                                 =  [true()]                         
                                                                     
          [geq(n__0(), n__s(Y))] =  [1 1] Y + [0]                    
                                    [0 0]     [0]                    
                                 >= [0]                              
                                    [0]                              
                                 =  [false()]                        
                                                                     
         [geq(n__s(X), n__s(Y))] =  [1 1] Y + [1 1] X + [0]          
                                    [0 0]     [0 0]     [0]          
                                 >= [1 1] Y + [1 1] X + [0]          
                                    [0 0]     [0 0]     [0]          
                                 =  [geq(activate(X), activate(Y))]  
                                                                     
                   [div(X1, X2)] =  [1 0] X1 + [0]                   
                                    [0 1]      [0]                   
                                 >= [1 0] X1 + [0]                   
                                    [0 1]      [0]                   
                                 =  [n__div(X1, X2)]                 
                                                                     
                          [s(X)] =  [1 1] X + [0]                    
                                    [0 1]     [1]                    
                                 >= [1 1] X + [0]                    
                                    [0 1]     [1]                    
                                 =  [n__s(X)]                        
                                                                     
              [if(true(), X, Y)] =  [7 7] Y + [7 7] X + [0]          
                                    [7 7]     [7 7]     [0]          
                                 >= [1 1] X + [0]                    
                                    [0 1]     [0]                    
                                 =  [activate(X)]                    
                                                                     
             [if(false(), X, Y)] =  [7 7] Y + [7 7] X + [0]          
                                    [7 7]     [7 7]     [0]          
                                 >= [1 1] Y + [0]                    
                                    [0 1]     [0]                    
                                 =  [activate(Y)]                    
                                                                     

We return to the main proof.

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

Weak Trs:
  { minus(X1, X2) -> n__minus(X1, X2)
  , minus(n__0(), Y) -> 0()
  , minus(n__s(X), n__s(Y)) -> minus(activate(X), activate(Y))
  , 0() -> n__0()
  , activate(X) -> X
  , activate(n__0()) -> 0()
  , activate(n__s(X)) -> s(activate(X))
  , activate(n__div(X1, X2)) -> div(activate(X1), X2)
  , activate(n__minus(X1, X2)) -> minus(X1, X2)
  , geq(X, n__0()) -> true()
  , geq(n__0(), n__s(Y)) -> false()
  , geq(n__s(X), n__s(Y)) -> geq(activate(X), activate(Y))
  , div(X1, X2) -> n__div(X1, X2)
  , s(X) -> n__s(X)
  , if(true(), X, Y) -> activate(X)
  , if(false(), X, Y) -> activate(Y) }
Obligation:
  innermost runtime complexity
Answer:
  YES(O(1),O(1))

Empty rules are trivially bounded

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