WORST_CASE(?,O(n^1))
* Step 1: WeightGap WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict TRS:
            div(0(),s(Y)) -> 0()
            div(s(X),s(Y)) -> if(geq(X,Y),s(div(minus(X,Y),s(Y))),0())
            geq(X,0()) -> true()
            geq(0(),s(Y)) -> false()
            geq(s(X),s(Y)) -> geq(X,Y)
            if(false(),X,Y) -> Y
            if(true(),X,Y) -> X
            minus(0(),Y) -> 0()
            minus(s(X),s(Y)) -> minus(X,Y)
        - Signature:
            {div/2,geq/2,if/3,minus/2} / {0/0,false/0,s/1,true/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {div,geq,if,minus} and constructors {0,false,s,true}
    + Applied Processor:
        WeightGap {wgDimension = 1, wgDegree = 1, wgKind = Algebraic, wgUArgs = UArgs, wgOn = WgOnAny}
    + Details:
        The weightgap principle applies using the following nonconstant growth matrix-interpretation:
          We apply a matrix interpretation of kind constructor based matrix interpretation:
          The following argument positions are considered usable:
            uargs(div) = {1},
            uargs(if) = {1,2},
            uargs(s) = {1}
          
          Following symbols are considered usable:
            all
          TcT has computed the following interpretation:
                p(0) = [5]                           
              p(div) = [1] x1 + [9] x2 + [0]         
            p(false) = [0]                           
              p(geq) = [15]                          
               p(if) = [1] x1 + [1] x2 + [2] x3 + [0]
            p(minus) = [1] x1 + [1]                  
                p(s) = [1] x1 + [0]                  
             p(true) = [8]                           
          
          Following rules are strictly oriented:
              geq(X,0()) = [15]               
                         > [8]                
                         = true()             
          
           geq(0(),s(Y)) = [15]               
                         > [0]                
                         = false()            
          
          if(true(),X,Y) = [1] X + [2] Y + [8]
                         > [1] X + [0]        
                         = X                  
          
            minus(0(),Y) = [6]                
                         > [5]                
                         = 0()                
          
          
          Following rules are (at-least) weakly oriented:
             div(0(),s(Y)) =  [9] Y + [5]                             
                           >= [5]                                     
                           =  0()                                     
          
            div(s(X),s(Y)) =  [1] X + [9] Y + [0]                     
                           >= [1] X + [9] Y + [26]                    
                           =  if(geq(X,Y),s(div(minus(X,Y),s(Y))),0())
          
            geq(s(X),s(Y)) =  [15]                                    
                           >= [15]                                    
                           =  geq(X,Y)                                
          
           if(false(),X,Y) =  [1] X + [2] Y + [0]                     
                           >= [1] Y + [0]                             
                           =  Y                                       
          
          minus(s(X),s(Y)) =  [1] X + [1]                             
                           >= [1] X + [1]                             
                           =  minus(X,Y)                              
          
        Further, it can be verified that all rules not oriented are covered by the weightgap condition.
* Step 2: WeightGap WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict TRS:
            div(0(),s(Y)) -> 0()
            div(s(X),s(Y)) -> if(geq(X,Y),s(div(minus(X,Y),s(Y))),0())
            geq(s(X),s(Y)) -> geq(X,Y)
            if(false(),X,Y) -> Y
            minus(s(X),s(Y)) -> minus(X,Y)
        - Weak TRS:
            geq(X,0()) -> true()
            geq(0(),s(Y)) -> false()
            if(true(),X,Y) -> X
            minus(0(),Y) -> 0()
        - Signature:
            {div/2,geq/2,if/3,minus/2} / {0/0,false/0,s/1,true/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {div,geq,if,minus} and constructors {0,false,s,true}
    + Applied Processor:
        WeightGap {wgDimension = 1, wgDegree = 1, wgKind = Algebraic, wgUArgs = UArgs, wgOn = WgOnAny}
    + Details:
        The weightgap principle applies using the following nonconstant growth matrix-interpretation:
          We apply a matrix interpretation of kind constructor based matrix interpretation:
          The following argument positions are considered usable:
            uargs(div) = {1},
            uargs(if) = {1,2},
            uargs(s) = {1}
          
          Following symbols are considered usable:
            all
          TcT has computed the following interpretation:
                p(0) = [2]                           
              p(div) = [1] x1 + [2] x2 + [10]        
            p(false) = [1]                           
              p(geq) = [3]                           
               p(if) = [1] x1 + [1] x2 + [6] x3 + [0]
            p(minus) = [5]                           
                p(s) = [1] x1 + [0]                  
             p(true) = [0]                           
          
          Following rules are strictly oriented:
            div(0(),s(Y)) = [2] Y + [12]       
                          > [2]                
                          = 0()                
          
          if(false(),X,Y) = [1] X + [6] Y + [1]
                          > [1] Y + [0]        
                          = Y                  
          
          
          Following rules are (at-least) weakly oriented:
            div(s(X),s(Y)) =  [1] X + [2] Y + [10]                    
                           >= [2] Y + [30]                            
                           =  if(geq(X,Y),s(div(minus(X,Y),s(Y))),0())
          
                geq(X,0()) =  [3]                                     
                           >= [0]                                     
                           =  true()                                  
          
             geq(0(),s(Y)) =  [3]                                     
                           >= [1]                                     
                           =  false()                                 
          
            geq(s(X),s(Y)) =  [3]                                     
                           >= [3]                                     
                           =  geq(X,Y)                                
          
            if(true(),X,Y) =  [1] X + [6] Y + [0]                     
                           >= [1] X + [0]                             
                           =  X                                       
          
              minus(0(),Y) =  [5]                                     
                           >= [2]                                     
                           =  0()                                     
          
          minus(s(X),s(Y)) =  [5]                                     
                           >= [5]                                     
                           =  minus(X,Y)                              
          
        Further, it can be verified that all rules not oriented are covered by the weightgap condition.
* Step 3: NaturalMI WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict TRS:
            div(s(X),s(Y)) -> if(geq(X,Y),s(div(minus(X,Y),s(Y))),0())
            geq(s(X),s(Y)) -> geq(X,Y)
            minus(s(X),s(Y)) -> minus(X,Y)
        - Weak TRS:
            div(0(),s(Y)) -> 0()
            geq(X,0()) -> true()
            geq(0(),s(Y)) -> false()
            if(false(),X,Y) -> Y
            if(true(),X,Y) -> X
            minus(0(),Y) -> 0()
        - Signature:
            {div/2,geq/2,if/3,minus/2} / {0/0,false/0,s/1,true/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {div,geq,if,minus} and constructors {0,false,s,true}
    + Applied Processor:
        NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Just any strict-rules}
    + Details:
        We apply a matrix interpretation of kind constructor based matrix interpretation:
        The following argument positions are considered usable:
          uargs(div) = {1},
          uargs(if) = {1,2},
          uargs(s) = {1}
        
        Following symbols are considered usable:
          {div,geq,if,minus}
        TcT has computed the following interpretation:
              p(0) = [0]                           
            p(div) = [8] x1 + [4]                  
          p(false) = [0]                           
            p(geq) = [1]                           
             p(if) = [1] x1 + [1] x2 + [4] x3 + [1]
          p(minus) = [2]                           
              p(s) = [1] x1 + [3]                  
           p(true) = [1]                           
        
        Following rules are strictly oriented:
        div(s(X),s(Y)) = [8] X + [28]                            
                       > [25]                                    
                       = if(geq(X,Y),s(div(minus(X,Y),s(Y))),0())
        
        
        Following rules are (at-least) weakly oriented:
           div(0(),s(Y)) =  [4]                
                         >= [0]                
                         =  0()                
        
              geq(X,0()) =  [1]                
                         >= [1]                
                         =  true()             
        
           geq(0(),s(Y)) =  [1]                
                         >= [0]                
                         =  false()            
        
          geq(s(X),s(Y)) =  [1]                
                         >= [1]                
                         =  geq(X,Y)           
        
         if(false(),X,Y) =  [1] X + [4] Y + [1]
                         >= [1] Y + [0]        
                         =  Y                  
        
          if(true(),X,Y) =  [1] X + [4] Y + [2]
                         >= [1] X + [0]        
                         =  X                  
        
            minus(0(),Y) =  [2]                
                         >= [0]                
                         =  0()                
        
        minus(s(X),s(Y)) =  [2]                
                         >= [2]                
                         =  minus(X,Y)         
        
* Step 4: NaturalMI WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict TRS:
            geq(s(X),s(Y)) -> geq(X,Y)
            minus(s(X),s(Y)) -> minus(X,Y)
        - Weak TRS:
            div(0(),s(Y)) -> 0()
            div(s(X),s(Y)) -> if(geq(X,Y),s(div(minus(X,Y),s(Y))),0())
            geq(X,0()) -> true()
            geq(0(),s(Y)) -> false()
            if(false(),X,Y) -> Y
            if(true(),X,Y) -> X
            minus(0(),Y) -> 0()
        - Signature:
            {div/2,geq/2,if/3,minus/2} / {0/0,false/0,s/1,true/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {div,geq,if,minus} and constructors {0,false,s,true}
    + Applied Processor:
        NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Just any strict-rules}
    + Details:
        We apply a matrix interpretation of kind constructor based matrix interpretation:
        The following argument positions are considered usable:
          uargs(div) = {1},
          uargs(if) = {1,2},
          uargs(s) = {1}
        
        Following symbols are considered usable:
          {div,geq,if,minus}
        TcT has computed the following interpretation:
              p(0) = [0]                           
            p(div) = [12] x1 + [1]                 
          p(false) = [0]                           
            p(geq) = [4] x1 + [0]                  
             p(if) = [2] x1 + [8] x2 + [2] x3 + [1]
          p(minus) = [0]                           
              p(s) = [1] x1 + [2]                  
           p(true) = [0]                           
        
        Following rules are strictly oriented:
        geq(s(X),s(Y)) = [4] X + [8]
                       > [4] X + [0]
                       = geq(X,Y)   
        
        
        Following rules are (at-least) weakly oriented:
           div(0(),s(Y)) =  [1]                                     
                         >= [0]                                     
                         =  0()                                     
        
          div(s(X),s(Y)) =  [12] X + [25]                           
                         >= [8] X + [25]                            
                         =  if(geq(X,Y),s(div(minus(X,Y),s(Y))),0())
        
              geq(X,0()) =  [4] X + [0]                             
                         >= [0]                                     
                         =  true()                                  
        
           geq(0(),s(Y)) =  [0]                                     
                         >= [0]                                     
                         =  false()                                 
        
         if(false(),X,Y) =  [8] X + [2] Y + [1]                     
                         >= [1] Y + [0]                             
                         =  Y                                       
        
          if(true(),X,Y) =  [8] X + [2] Y + [1]                     
                         >= [1] X + [0]                             
                         =  X                                       
        
            minus(0(),Y) =  [0]                                     
                         >= [0]                                     
                         =  0()                                     
        
        minus(s(X),s(Y)) =  [0]                                     
                         >= [0]                                     
                         =  minus(X,Y)                              
        
* Step 5: WeightGap WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict TRS:
            minus(s(X),s(Y)) -> minus(X,Y)
        - Weak TRS:
            div(0(),s(Y)) -> 0()
            div(s(X),s(Y)) -> if(geq(X,Y),s(div(minus(X,Y),s(Y))),0())
            geq(X,0()) -> true()
            geq(0(),s(Y)) -> false()
            geq(s(X),s(Y)) -> geq(X,Y)
            if(false(),X,Y) -> Y
            if(true(),X,Y) -> X
            minus(0(),Y) -> 0()
        - Signature:
            {div/2,geq/2,if/3,minus/2} / {0/0,false/0,s/1,true/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {div,geq,if,minus} and constructors {0,false,s,true}
    + Applied Processor:
        WeightGap {wgDimension = 1, wgDegree = 1, wgKind = Algebraic, wgUArgs = UArgs, wgOn = WgOnAny}
    + Details:
        The weightgap principle applies using the following nonconstant growth matrix-interpretation:
          We apply a matrix interpretation of kind constructor based matrix interpretation:
          The following argument positions are considered usable:
            uargs(div) = {1},
            uargs(if) = {1,2},
            uargs(s) = {1}
          
          Following symbols are considered usable:
            all
          TcT has computed the following interpretation:
                p(0) = [0]                           
              p(div) = [1] x1 + [0]                  
            p(false) = [0]                           
              p(geq) = [0]                           
               p(if) = [1] x1 + [1] x2 + [8] x3 + [0]
            p(minus) = [1] x1 + [0]                  
                p(s) = [1] x1 + [8]                  
             p(true) = [0]                           
          
          Following rules are strictly oriented:
          minus(s(X),s(Y)) = [1] X + [8]
                           > [1] X + [0]
                           = minus(X,Y) 
          
          
          Following rules are (at-least) weakly oriented:
            div(0(),s(Y)) =  [0]                                     
                          >= [0]                                     
                          =  0()                                     
          
           div(s(X),s(Y)) =  [1] X + [8]                             
                          >= [1] X + [8]                             
                          =  if(geq(X,Y),s(div(minus(X,Y),s(Y))),0())
          
               geq(X,0()) =  [0]                                     
                          >= [0]                                     
                          =  true()                                  
          
            geq(0(),s(Y)) =  [0]                                     
                          >= [0]                                     
                          =  false()                                 
          
           geq(s(X),s(Y)) =  [0]                                     
                          >= [0]                                     
                          =  geq(X,Y)                                
          
          if(false(),X,Y) =  [1] X + [8] Y + [0]                     
                          >= [1] Y + [0]                             
                          =  Y                                       
          
           if(true(),X,Y) =  [1] X + [8] Y + [0]                     
                          >= [1] X + [0]                             
                          =  X                                       
          
             minus(0(),Y) =  [0]                                     
                          >= [0]                                     
                          =  0()                                     
          
        Further, it can be verified that all rules not oriented are covered by the weightgap condition.
* Step 6: EmptyProcessor WORST_CASE(?,O(1))
    + Considered Problem:
        - Weak TRS:
            div(0(),s(Y)) -> 0()
            div(s(X),s(Y)) -> if(geq(X,Y),s(div(minus(X,Y),s(Y))),0())
            geq(X,0()) -> true()
            geq(0(),s(Y)) -> false()
            geq(s(X),s(Y)) -> geq(X,Y)
            if(false(),X,Y) -> Y
            if(true(),X,Y) -> X
            minus(0(),Y) -> 0()
            minus(s(X),s(Y)) -> minus(X,Y)
        - Signature:
            {div/2,geq/2,if/3,minus/2} / {0/0,false/0,s/1,true/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {div,geq,if,minus} and constructors {0,false,s,true}
    + Applied Processor:
        EmptyProcessor
    + Details:
        The problem is already closed. The intended complexity is O(1).

WORST_CASE(?,O(n^1))