* Step 1: Sum WORST_CASE(Omega(n^1),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:
        Sum {left = someStrategy, right = someStrategy}
    + Details:
        ()
** Step 1.a:1: DecreasingLoops WORST_CASE(Omega(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:
        DecreasingLoops {bound = AnyLoop, narrow = 10}
    + Details:
        The system has following decreasing Loops:
          geq(x,y){x -> s(x),y -> s(y)} =
            geq(s(x),s(y)) ->^+ geq(x,y)
              = C[geq(x,y) = geq(x,y){}]

** Step 1.b: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) = [1]                           
              p(div) = [1] x1 + [8] x2 + [1]         
            p(false) = [0]                           
              p(geq) = [13]                          
               p(if) = [1] x1 + [1] x2 + [4] x3 + [1]
            p(minus) = [0]                           
                p(s) = [1] x1 + [1]                  
             p(true) = [0]                           
          
          Following rules are strictly oriented:
            div(0(),s(Y)) = [8] Y + [10]       
                          > [1]                
                          = 0()                
          
               geq(X,0()) = [13]               
                          > [0]                
                          = true()             
          
            geq(0(),s(Y)) = [13]               
                          > [0]                
                          = false()            
          
          if(false(),X,Y) = [1] X + [4] Y + [1]
                          > [1] Y + [0]        
                          = Y                  
          
           if(true(),X,Y) = [1] X + [4] Y + [1]
                          > [1] X + [0]        
                          = X                  
          
          
          Following rules are (at-least) weakly oriented:
            div(s(X),s(Y)) =  [1] X + [8] Y + [10]                    
                           >= [8] Y + [28]                            
                           =  if(geq(X,Y),s(div(minus(X,Y),s(Y))),0())
          
            geq(s(X),s(Y)) =  [13]                                    
                           >= [13]                                    
                           =  geq(X,Y)                                
          
              minus(0(),Y) =  [0]                                     
                           >= [1]                                     
                           =  0()                                     
          
          minus(s(X),s(Y)) =  [0]                                     
                           >= [0]                                     
                           =  minus(X,Y)                              
          
        Further, it can be verified that all rules not oriented are covered by the weightgap condition.
** Step 1.b:2: WeightGap 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(0(),Y) -> 0()
            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
        - 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 + [8] x2 + [0]         
            p(false) = [3]                           
              p(geq) = [8]                           
               p(if) = [1] x1 + [1] x2 + [8] x3 + [9]
            p(minus) = [1]                           
                p(s) = [1] x1 + [0]                  
             p(true) = [1]                           
          
          Following rules are strictly oriented:
          minus(0(),Y) = [1]
                       > [0]
                       = 0()
          
          
          Following rules are (at-least) weakly oriented:
             div(0(),s(Y)) =  [8] Y + [0]                             
                           >= [0]                                     
                           =  0()                                     
          
            div(s(X),s(Y)) =  [1] X + [8] Y + [0]                     
                           >= [8] Y + [18]                            
                           =  if(geq(X,Y),s(div(minus(X,Y),s(Y))),0())
          
                geq(X,0()) =  [8]                                     
                           >= [1]                                     
                           =  true()                                  
          
             geq(0(),s(Y)) =  [8]                                     
                           >= [3]                                     
                           =  false()                                 
          
            geq(s(X),s(Y)) =  [8]                                     
                           >= [8]                                     
                           =  geq(X,Y)                                
          
           if(false(),X,Y) =  [1] X + [8] Y + [12]                    
                           >= [1] Y + [0]                             
                           =  Y                                       
          
            if(true(),X,Y) =  [1] X + [8] Y + [10]                    
                           >= [1] X + [0]                             
                           =  X                                       
          
          minus(s(X),s(Y)) =  [1]                                     
                           >= [1]                                     
                           =  minus(X,Y)                              
          
        Further, it can be verified that all rules not oriented are covered by the weightgap condition.
** Step 1.b:3: WeightGap 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:
        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) = [8]                           
              p(div) = [1] x1 + [1] x2 + [0]         
            p(false) = [10]                          
              p(geq) = [1] x1 + [4]                  
               p(if) = [1] x1 + [1] x2 + [1] x3 + [6]
            p(minus) = [9]                           
                p(s) = [1] x1 + [1]                  
             p(true) = [2]                           
          
          Following rules are strictly oriented:
          geq(s(X),s(Y)) = [1] X + [5]
                         > [1] X + [4]
                         = geq(X,Y)   
          
          
          Following rules are (at-least) weakly oriented:
             div(0(),s(Y)) =  [1] Y + [9]                             
                           >= [8]                                     
                           =  0()                                     
          
            div(s(X),s(Y)) =  [1] X + [1] Y + [2]                     
                           >= [1] X + [1] Y + [29]                    
                           =  if(geq(X,Y),s(div(minus(X,Y),s(Y))),0())
          
                geq(X,0()) =  [1] X + [4]                             
                           >= [2]                                     
                           =  true()                                  
          
             geq(0(),s(Y)) =  [12]                                    
                           >= [10]                                    
                           =  false()                                 
          
           if(false(),X,Y) =  [1] X + [1] Y + [16]                    
                           >= [1] Y + [0]                             
                           =  Y                                       
          
            if(true(),X,Y) =  [1] X + [1] Y + [8]                     
                           >= [1] X + [0]                             
                           =  X                                       
          
              minus(0(),Y) =  [9]                                     
                           >= [8]                                     
                           =  0()                                     
          
          minus(s(X),s(Y)) =  [9]                                     
                           >= [9]                                     
                           =  minus(X,Y)                              
          
        Further, it can be verified that all rules not oriented are covered by the weightgap condition.
** Step 1.b:4: WeightGap 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())
            minus(s(X),s(Y)) -> minus(X,Y)
        - Weak TRS:
            div(0(),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) = [5]                           
              p(div) = [1] x1 + [8]                  
            p(false) = [0]                           
              p(geq) = [0]                           
               p(if) = [1] x1 + [1] x2 + [3] 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)) =  [13]                                    
                          >= [5]                                     
                          =  0()                                     
          
           div(s(X),s(Y)) =  [1] X + [16]                            
                          >= [1] X + [31]                            
                          =  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 + [3] Y + [0]                     
                          >= [1] Y + [0]                             
                          =  Y                                       
          
           if(true(),X,Y) =  [1] X + [3] Y + [0]                     
                          >= [1] X + [0]                             
                          =  X                                       
          
             minus(0(),Y) =  [5]                                     
                          >= [5]                                     
                          =  0()                                     
          
        Further, it can be verified that all rules not oriented are covered by the weightgap condition.
** Step 1.b:5: MI 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())
        - Weak TRS:
            div(0(),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:
        MI {miKind = MaximalMatrix (UpperTriangular (Multiplicity Nothing)), miDimension = 1, miUArgs = UArgs, miURules = URules, miSelector = Just any strict-rules}
    + Details:
        We apply a matrix interpretation of kind MaximalMatrix (UpperTriangular (Multiplicity Nothing)):
        
        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) = [6] x_1 + [0]                    
          p(false) = [5]                              
            p(geq) = [5]                              
             p(if) = [1] x_1 + [4] x_2 + [1] x_3 + [0]
          p(minus) = [0]                              
              p(s) = [1] x_1 + [3]                    
           p(true) = [1]                              
        
        Following rules are strictly oriented:
        div(s(X),s(Y)) = [6] X + [18]                            
                       > [17]                                    
                       = if(geq(X,Y),s(div(minus(X,Y),s(Y))),0())
        
        
        Following rules are (at-least) weakly oriented:
           div(0(),s(Y)) =  [0]                
                         >= [0]                
                         =  0()                
        
              geq(X,0()) =  [5]                
                         >= [1]                
                         =  true()             
        
           geq(0(),s(Y)) =  [5]                
                         >= [5]                
                         =  false()            
        
          geq(s(X),s(Y)) =  [5]                
                         >= [5]                
                         =  geq(X,Y)           
        
         if(false(),X,Y) =  [4] X + [1] Y + [5]
                         >= [1] Y + [0]        
                         =  Y                  
        
          if(true(),X,Y) =  [4] X + [1] Y + [1]
                         >= [1] X + [0]        
                         =  X                  
        
            minus(0(),Y) =  [0]                
                         >= [0]                
                         =  0()                
        
        minus(s(X),s(Y)) =  [0]                
                         >= [0]                
                         =  minus(X,Y)         
        
** Step 1.b: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(Omega(n^1),O(n^1))