WORST_CASE(?,O(n^3))
* Step 1: NaturalPI WORST_CASE(?,O(n^3))
    + Considered Problem:
        - Strict TRS:
            a__div(X1,X2) -> div(X1,X2)
            a__div(0(),s(Y)) -> 0()
            a__div(s(X),s(Y)) -> a__if(a__geq(X,Y),s(div(minus(X,Y),s(Y))),0())
            a__geq(X,0()) -> true()
            a__geq(X1,X2) -> geq(X1,X2)
            a__geq(0(),s(Y)) -> false()
            a__geq(s(X),s(Y)) -> a__geq(X,Y)
            a__if(X1,X2,X3) -> if(X1,X2,X3)
            a__if(false(),X,Y) -> mark(Y)
            a__if(true(),X,Y) -> mark(X)
            a__minus(X1,X2) -> minus(X1,X2)
            a__minus(0(),Y) -> 0()
            a__minus(s(X),s(Y)) -> a__minus(X,Y)
            mark(0()) -> 0()
            mark(div(X1,X2)) -> a__div(mark(X1),X2)
            mark(false()) -> false()
            mark(geq(X1,X2)) -> a__geq(X1,X2)
            mark(if(X1,X2,X3)) -> a__if(mark(X1),X2,X3)
            mark(minus(X1,X2)) -> a__minus(X1,X2)
            mark(s(X)) -> s(mark(X))
            mark(true()) -> true()
        - Signature:
            {a__div/2,a__geq/2,a__if/3,a__minus/2,mark/1} / {0/0,div/2,false/0,geq/2,if/3,minus/2,s/1,true/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {a__div,a__geq,a__if,a__minus,mark} and constructors {0
            ,div,false,geq,if,minus,s,true}
    + Applied Processor:
        NaturalPI {shape = Linear, restrict = Restrict, uargs = UArgs, urules = URules, selector = Just any strict-rules}
    + Details:
        We apply a polynomial interpretation of kind constructor-based(linear):
        The following argument positions are considered usable:
          uargs(a__div) = {1},
          uargs(a__if) = {1},
          uargs(s) = {1}
        
        Following symbols are considered usable:
          {a__div,a__geq,a__if,a__minus,mark}
        TcT has computed the following interpretation:
                 p(0) = 0               
            p(a__div) = 4 + x1 + 4*x2   
            p(a__geq) = 0               
             p(a__if) = x1 + 4*x2 + 4*x3
          p(a__minus) = 0               
               p(div) = 1 + x1 + x2     
             p(false) = 0               
               p(geq) = 0               
                p(if) = x1 + x2 + x3    
              p(mark) = 4*x1            
             p(minus) = 0               
                 p(s) = x1              
              p(true) = 0               
        
        Following rules are strictly oriented:
           a__div(X1,X2) = 4 + X1 + 4*X2
                         > 1 + X1 + X2  
                         = div(X1,X2)   
        
        a__div(0(),s(Y)) = 4 + 4*Y      
                         > 0            
                         = 0()          
        
        
        Following rules are (at-least) weakly oriented:
          a__div(s(X),s(Y)) =  4 + X + 4*Y                                   
                            >= 4 + 4*Y                                       
                            =  a__if(a__geq(X,Y),s(div(minus(X,Y),s(Y))),0())
        
              a__geq(X,0()) =  0                                             
                            >= 0                                             
                            =  true()                                        
        
              a__geq(X1,X2) =  0                                             
                            >= 0                                             
                            =  geq(X1,X2)                                    
        
           a__geq(0(),s(Y)) =  0                                             
                            >= 0                                             
                            =  false()                                       
        
          a__geq(s(X),s(Y)) =  0                                             
                            >= 0                                             
                            =  a__geq(X,Y)                                   
        
            a__if(X1,X2,X3) =  X1 + 4*X2 + 4*X3                              
                            >= X1 + X2 + X3                                  
                            =  if(X1,X2,X3)                                  
        
         a__if(false(),X,Y) =  4*X + 4*Y                                     
                            >= 4*Y                                           
                            =  mark(Y)                                       
        
          a__if(true(),X,Y) =  4*X + 4*Y                                     
                            >= 4*X                                           
                            =  mark(X)                                       
        
            a__minus(X1,X2) =  0                                             
                            >= 0                                             
                            =  minus(X1,X2)                                  
        
            a__minus(0(),Y) =  0                                             
                            >= 0                                             
                            =  0()                                           
        
        a__minus(s(X),s(Y)) =  0                                             
                            >= 0                                             
                            =  a__minus(X,Y)                                 
        
                  mark(0()) =  0                                             
                            >= 0                                             
                            =  0()                                           
        
           mark(div(X1,X2)) =  4 + 4*X1 + 4*X2                               
                            >= 4 + 4*X1 + 4*X2                               
                            =  a__div(mark(X1),X2)                           
        
              mark(false()) =  0                                             
                            >= 0                                             
                            =  false()                                       
        
           mark(geq(X1,X2)) =  0                                             
                            >= 0                                             
                            =  a__geq(X1,X2)                                 
        
         mark(if(X1,X2,X3)) =  4*X1 + 4*X2 + 4*X3                            
                            >= 4*X1 + 4*X2 + 4*X3                            
                            =  a__if(mark(X1),X2,X3)                         
        
         mark(minus(X1,X2)) =  0                                             
                            >= 0                                             
                            =  a__minus(X1,X2)                               
        
                 mark(s(X)) =  4*X                                           
                            >= 4*X                                           
                            =  s(mark(X))                                    
        
               mark(true()) =  0                                             
                            >= 0                                             
                            =  true()                                        
        
* Step 2: NaturalPI WORST_CASE(?,O(n^3))
    + Considered Problem:
        - Strict TRS:
            a__div(s(X),s(Y)) -> a__if(a__geq(X,Y),s(div(minus(X,Y),s(Y))),0())
            a__geq(X,0()) -> true()
            a__geq(X1,X2) -> geq(X1,X2)
            a__geq(0(),s(Y)) -> false()
            a__geq(s(X),s(Y)) -> a__geq(X,Y)
            a__if(X1,X2,X3) -> if(X1,X2,X3)
            a__if(false(),X,Y) -> mark(Y)
            a__if(true(),X,Y) -> mark(X)
            a__minus(X1,X2) -> minus(X1,X2)
            a__minus(0(),Y) -> 0()
            a__minus(s(X),s(Y)) -> a__minus(X,Y)
            mark(0()) -> 0()
            mark(div(X1,X2)) -> a__div(mark(X1),X2)
            mark(false()) -> false()
            mark(geq(X1,X2)) -> a__geq(X1,X2)
            mark(if(X1,X2,X3)) -> a__if(mark(X1),X2,X3)
            mark(minus(X1,X2)) -> a__minus(X1,X2)
            mark(s(X)) -> s(mark(X))
            mark(true()) -> true()
        - Weak TRS:
            a__div(X1,X2) -> div(X1,X2)
            a__div(0(),s(Y)) -> 0()
        - Signature:
            {a__div/2,a__geq/2,a__if/3,a__minus/2,mark/1} / {0/0,div/2,false/0,geq/2,if/3,minus/2,s/1,true/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {a__div,a__geq,a__if,a__minus,mark} and constructors {0
            ,div,false,geq,if,minus,s,true}
    + Applied Processor:
        NaturalPI {shape = Linear, restrict = Restrict, uargs = UArgs, urules = URules, selector = Just any strict-rules}
    + Details:
        We apply a polynomial interpretation of kind constructor-based(linear):
        The following argument positions are considered usable:
          uargs(a__div) = {1},
          uargs(a__if) = {1},
          uargs(s) = {1}
        
        Following symbols are considered usable:
          {a__div,a__geq,a__if,a__minus,mark}
        TcT has computed the following interpretation:
                 p(0) = 0           
            p(a__div) = x1          
            p(a__geq) = x1          
             p(a__if) = x1 + x2 + x3
          p(a__minus) = 0           
               p(div) = x1          
             p(false) = 0           
               p(geq) = x1          
                p(if) = x1 + x2 + x3
              p(mark) = x1          
             p(minus) = 0           
                 p(s) = 1 + x1      
              p(true) = 0           
        
        Following rules are strictly oriented:
        a__geq(s(X),s(Y)) = 1 + X      
                          > X          
                          = a__geq(X,Y)
        
        
        Following rules are (at-least) weakly oriented:
              a__div(X1,X2) =  X1                                            
                            >= X1                                            
                            =  div(X1,X2)                                    
        
           a__div(0(),s(Y)) =  0                                             
                            >= 0                                             
                            =  0()                                           
        
          a__div(s(X),s(Y)) =  1 + X                                         
                            >= 1 + X                                         
                            =  a__if(a__geq(X,Y),s(div(minus(X,Y),s(Y))),0())
        
              a__geq(X,0()) =  X                                             
                            >= 0                                             
                            =  true()                                        
        
              a__geq(X1,X2) =  X1                                            
                            >= X1                                            
                            =  geq(X1,X2)                                    
        
           a__geq(0(),s(Y)) =  0                                             
                            >= 0                                             
                            =  false()                                       
        
            a__if(X1,X2,X3) =  X1 + X2 + X3                                  
                            >= X1 + X2 + X3                                  
                            =  if(X1,X2,X3)                                  
        
         a__if(false(),X,Y) =  X + Y                                         
                            >= Y                                             
                            =  mark(Y)                                       
        
          a__if(true(),X,Y) =  X + Y                                         
                            >= X                                             
                            =  mark(X)                                       
        
            a__minus(X1,X2) =  0                                             
                            >= 0                                             
                            =  minus(X1,X2)                                  
        
            a__minus(0(),Y) =  0                                             
                            >= 0                                             
                            =  0()                                           
        
        a__minus(s(X),s(Y)) =  0                                             
                            >= 0                                             
                            =  a__minus(X,Y)                                 
        
                  mark(0()) =  0                                             
                            >= 0                                             
                            =  0()                                           
        
           mark(div(X1,X2)) =  X1                                            
                            >= X1                                            
                            =  a__div(mark(X1),X2)                           
        
              mark(false()) =  0                                             
                            >= 0                                             
                            =  false()                                       
        
           mark(geq(X1,X2)) =  X1                                            
                            >= X1                                            
                            =  a__geq(X1,X2)                                 
        
         mark(if(X1,X2,X3)) =  X1 + X2 + X3                                  
                            >= X1 + X2 + X3                                  
                            =  a__if(mark(X1),X2,X3)                         
        
         mark(minus(X1,X2)) =  0                                             
                            >= 0                                             
                            =  a__minus(X1,X2)                               
        
                 mark(s(X)) =  1 + X                                         
                            >= 1 + X                                         
                            =  s(mark(X))                                    
        
               mark(true()) =  0                                             
                            >= 0                                             
                            =  true()                                        
        
* Step 3: NaturalPI WORST_CASE(?,O(n^3))
    + Considered Problem:
        - Strict TRS:
            a__div(s(X),s(Y)) -> a__if(a__geq(X,Y),s(div(minus(X,Y),s(Y))),0())
            a__geq(X,0()) -> true()
            a__geq(X1,X2) -> geq(X1,X2)
            a__geq(0(),s(Y)) -> false()
            a__if(X1,X2,X3) -> if(X1,X2,X3)
            a__if(false(),X,Y) -> mark(Y)
            a__if(true(),X,Y) -> mark(X)
            a__minus(X1,X2) -> minus(X1,X2)
            a__minus(0(),Y) -> 0()
            a__minus(s(X),s(Y)) -> a__minus(X,Y)
            mark(0()) -> 0()
            mark(div(X1,X2)) -> a__div(mark(X1),X2)
            mark(false()) -> false()
            mark(geq(X1,X2)) -> a__geq(X1,X2)
            mark(if(X1,X2,X3)) -> a__if(mark(X1),X2,X3)
            mark(minus(X1,X2)) -> a__minus(X1,X2)
            mark(s(X)) -> s(mark(X))
            mark(true()) -> true()
        - Weak TRS:
            a__div(X1,X2) -> div(X1,X2)
            a__div(0(),s(Y)) -> 0()
            a__geq(s(X),s(Y)) -> a__geq(X,Y)
        - Signature:
            {a__div/2,a__geq/2,a__if/3,a__minus/2,mark/1} / {0/0,div/2,false/0,geq/2,if/3,minus/2,s/1,true/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {a__div,a__geq,a__if,a__minus,mark} and constructors {0
            ,div,false,geq,if,minus,s,true}
    + Applied Processor:
        NaturalPI {shape = Linear, restrict = Restrict, uargs = UArgs, urules = URules, selector = Just any strict-rules}
    + Details:
        We apply a polynomial interpretation of kind constructor-based(linear):
        The following argument positions are considered usable:
          uargs(a__div) = {1},
          uargs(a__if) = {1},
          uargs(s) = {1}
        
        Following symbols are considered usable:
          {a__div,a__geq,a__if,a__minus,mark}
        TcT has computed the following interpretation:
                 p(0) = 0           
            p(a__div) = 4 + x1 + x2 
            p(a__geq) = 0           
             p(a__if) = x1 + x2 + x3
          p(a__minus) = x1          
               p(div) = 4 + x1 + x2 
             p(false) = 0           
               p(geq) = 0           
                p(if) = x1 + x2 + x3
              p(mark) = x1          
             p(minus) = x1          
                 p(s) = 4 + x1      
              p(true) = 0           
        
        Following rules are strictly oriented:
        a__minus(s(X),s(Y)) = 4 + X        
                            > X            
                            = a__minus(X,Y)
        
        
        Following rules are (at-least) weakly oriented:
             a__div(X1,X2) =  4 + X1 + X2                                   
                           >= 4 + X1 + X2                                   
                           =  div(X1,X2)                                    
        
          a__div(0(),s(Y)) =  8 + Y                                         
                           >= 0                                             
                           =  0()                                           
        
         a__div(s(X),s(Y)) =  12 + X + Y                                    
                           >= 12 + X + Y                                    
                           =  a__if(a__geq(X,Y),s(div(minus(X,Y),s(Y))),0())
        
             a__geq(X,0()) =  0                                             
                           >= 0                                             
                           =  true()                                        
        
             a__geq(X1,X2) =  0                                             
                           >= 0                                             
                           =  geq(X1,X2)                                    
        
          a__geq(0(),s(Y)) =  0                                             
                           >= 0                                             
                           =  false()                                       
        
         a__geq(s(X),s(Y)) =  0                                             
                           >= 0                                             
                           =  a__geq(X,Y)                                   
        
           a__if(X1,X2,X3) =  X1 + X2 + X3                                  
                           >= X1 + X2 + X3                                  
                           =  if(X1,X2,X3)                                  
        
        a__if(false(),X,Y) =  X + Y                                         
                           >= Y                                             
                           =  mark(Y)                                       
        
         a__if(true(),X,Y) =  X + Y                                         
                           >= X                                             
                           =  mark(X)                                       
        
           a__minus(X1,X2) =  X1                                            
                           >= X1                                            
                           =  minus(X1,X2)                                  
        
           a__minus(0(),Y) =  0                                             
                           >= 0                                             
                           =  0()                                           
        
                 mark(0()) =  0                                             
                           >= 0                                             
                           =  0()                                           
        
          mark(div(X1,X2)) =  4 + X1 + X2                                   
                           >= 4 + X1 + X2                                   
                           =  a__div(mark(X1),X2)                           
        
             mark(false()) =  0                                             
                           >= 0                                             
                           =  false()                                       
        
          mark(geq(X1,X2)) =  0                                             
                           >= 0                                             
                           =  a__geq(X1,X2)                                 
        
        mark(if(X1,X2,X3)) =  X1 + X2 + X3                                  
                           >= X1 + X2 + X3                                  
                           =  a__if(mark(X1),X2,X3)                         
        
        mark(minus(X1,X2)) =  X1                                            
                           >= X1                                            
                           =  a__minus(X1,X2)                               
        
                mark(s(X)) =  4 + X                                         
                           >= 4 + X                                         
                           =  s(mark(X))                                    
        
              mark(true()) =  0                                             
                           >= 0                                             
                           =  true()                                        
        
* Step 4: NaturalMI WORST_CASE(?,O(n^3))
    + Considered Problem:
        - Strict TRS:
            a__div(s(X),s(Y)) -> a__if(a__geq(X,Y),s(div(minus(X,Y),s(Y))),0())
            a__geq(X,0()) -> true()
            a__geq(X1,X2) -> geq(X1,X2)
            a__geq(0(),s(Y)) -> false()
            a__if(X1,X2,X3) -> if(X1,X2,X3)
            a__if(false(),X,Y) -> mark(Y)
            a__if(true(),X,Y) -> mark(X)
            a__minus(X1,X2) -> minus(X1,X2)
            a__minus(0(),Y) -> 0()
            mark(0()) -> 0()
            mark(div(X1,X2)) -> a__div(mark(X1),X2)
            mark(false()) -> false()
            mark(geq(X1,X2)) -> a__geq(X1,X2)
            mark(if(X1,X2,X3)) -> a__if(mark(X1),X2,X3)
            mark(minus(X1,X2)) -> a__minus(X1,X2)
            mark(s(X)) -> s(mark(X))
            mark(true()) -> true()
        - Weak TRS:
            a__div(X1,X2) -> div(X1,X2)
            a__div(0(),s(Y)) -> 0()
            a__geq(s(X),s(Y)) -> a__geq(X,Y)
            a__minus(s(X),s(Y)) -> a__minus(X,Y)
        - Signature:
            {a__div/2,a__geq/2,a__if/3,a__minus/2,mark/1} / {0/0,div/2,false/0,geq/2,if/3,minus/2,s/1,true/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {a__div,a__geq,a__if,a__minus,mark} and constructors {0
            ,div,false,geq,if,minus,s,true}
    + Applied Processor:
        NaturalMI {miDimension = 3, miDegree = 3, 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(a__div) = {1},
          uargs(a__if) = {1},
          uargs(s) = {1}
        
        Following symbols are considered usable:
          {a__div,a__geq,a__if,a__minus,mark}
        TcT has computed the following interpretation:
                 p(0) = [0]                                       
                        [0]                                       
                        [0]                                       
            p(a__div) = [1 0 0]      [0]                          
                        [0 1 1] x1 + [0]                          
                        [0 0 1]      [0]                          
            p(a__geq) = [0]                                       
                        [1]                                       
                        [0]                                       
             p(a__if) = [1 0 0]      [0 1 0]      [0 1 0]      [0]
                        [0 1 0] x1 + [0 1 0] x2 + [0 1 0] x3 + [0]
                        [0 0 0]      [0 0 1]      [0 0 1]      [0]
          p(a__minus) = [0]                                       
                        [0]                                       
                        [0]                                       
               p(div) = [0 0 0]      [0]                          
                        [0 1 1] x1 + [0]                          
                        [0 0 1]      [0]                          
             p(false) = [0]                                       
                        [1]                                       
                        [0]                                       
               p(geq) = [0]                                       
                        [0]                                       
                        [0]                                       
                p(if) = [0 0 0]      [0 0 0]      [0 0 0]      [0]
                        [0 1 0] x1 + [0 1 0] x2 + [0 1 0] x3 + [0]
                        [0 0 0]      [0 0 1]      [0 0 1]      [0]
              p(mark) = [0 1 0]      [0]                          
                        [0 1 0] x1 + [1]                          
                        [0 0 1]      [0]                          
             p(minus) = [0]                                       
                        [0]                                       
                        [0]                                       
                 p(s) = [1 0 0]      [0]                          
                        [0 1 0] x1 + [0]                          
                        [0 0 0]      [1]                          
              p(true) = [0]                                       
                        [1]                                       
                        [0]                                       
        
        Following rules are strictly oriented:
        mark(false()) = [1]    
                        [2]    
                        [0]    
                      > [0]    
                        [1]    
                        [0]    
                      = false()
        
         mark(true()) = [1]    
                        [2]    
                        [0]    
                      > [0]    
                        [1]    
                        [0]    
                      = true() 
        
        
        Following rules are (at-least) weakly oriented:
              a__div(X1,X2) =  [1 0 0]      [0]                              
                               [0 1 1] X1 + [0]                              
                               [0 0 1]      [0]                              
                            >= [0 0 0]      [0]                              
                               [0 1 1] X1 + [0]                              
                               [0 0 1]      [0]                              
                            =  div(X1,X2)                                    
        
           a__div(0(),s(Y)) =  [0]                                           
                               [0]                                           
                               [0]                                           
                            >= [0]                                           
                               [0]                                           
                               [0]                                           
                            =  0()                                           
        
          a__div(s(X),s(Y)) =  [1 0 0]     [0]                               
                               [0 1 0] X + [1]                               
                               [0 0 0]     [1]                               
                            >= [0]                                           
                               [1]                                           
                               [1]                                           
                            =  a__if(a__geq(X,Y),s(div(minus(X,Y),s(Y))),0())
        
              a__geq(X,0()) =  [0]                                           
                               [1]                                           
                               [0]                                           
                            >= [0]                                           
                               [1]                                           
                               [0]                                           
                            =  true()                                        
        
              a__geq(X1,X2) =  [0]                                           
                               [1]                                           
                               [0]                                           
                            >= [0]                                           
                               [0]                                           
                               [0]                                           
                            =  geq(X1,X2)                                    
        
           a__geq(0(),s(Y)) =  [0]                                           
                               [1]                                           
                               [0]                                           
                            >= [0]                                           
                               [1]                                           
                               [0]                                           
                            =  false()                                       
        
          a__geq(s(X),s(Y)) =  [0]                                           
                               [1]                                           
                               [0]                                           
                            >= [0]                                           
                               [1]                                           
                               [0]                                           
                            =  a__geq(X,Y)                                   
        
            a__if(X1,X2,X3) =  [1 0 0]      [0 1 0]      [0 1 0]      [0]    
                               [0 1 0] X1 + [0 1 0] X2 + [0 1 0] X3 + [0]    
                               [0 0 0]      [0 0 1]      [0 0 1]      [0]    
                            >= [0 0 0]      [0 0 0]      [0 0 0]      [0]    
                               [0 1 0] X1 + [0 1 0] X2 + [0 1 0] X3 + [0]    
                               [0 0 0]      [0 0 1]      [0 0 1]      [0]    
                            =  if(X1,X2,X3)                                  
        
         a__if(false(),X,Y) =  [0 1 0]     [0 1 0]     [0]                   
                               [0 1 0] X + [0 1 0] Y + [1]                   
                               [0 0 1]     [0 0 1]     [0]                   
                            >= [0 1 0]     [0]                               
                               [0 1 0] Y + [1]                               
                               [0 0 1]     [0]                               
                            =  mark(Y)                                       
        
          a__if(true(),X,Y) =  [0 1 0]     [0 1 0]     [0]                   
                               [0 1 0] X + [0 1 0] Y + [1]                   
                               [0 0 1]     [0 0 1]     [0]                   
                            >= [0 1 0]     [0]                               
                               [0 1 0] X + [1]                               
                               [0 0 1]     [0]                               
                            =  mark(X)                                       
        
            a__minus(X1,X2) =  [0]                                           
                               [0]                                           
                               [0]                                           
                            >= [0]                                           
                               [0]                                           
                               [0]                                           
                            =  minus(X1,X2)                                  
        
            a__minus(0(),Y) =  [0]                                           
                               [0]                                           
                               [0]                                           
                            >= [0]                                           
                               [0]                                           
                               [0]                                           
                            =  0()                                           
        
        a__minus(s(X),s(Y)) =  [0]                                           
                               [0]                                           
                               [0]                                           
                            >= [0]                                           
                               [0]                                           
                               [0]                                           
                            =  a__minus(X,Y)                                 
        
                  mark(0()) =  [0]                                           
                               [1]                                           
                               [0]                                           
                            >= [0]                                           
                               [0]                                           
                               [0]                                           
                            =  0()                                           
        
           mark(div(X1,X2)) =  [0 1 1]      [0]                              
                               [0 1 1] X1 + [1]                              
                               [0 0 1]      [0]                              
                            >= [0 1 0]      [0]                              
                               [0 1 1] X1 + [1]                              
                               [0 0 1]      [0]                              
                            =  a__div(mark(X1),X2)                           
        
           mark(geq(X1,X2)) =  [0]                                           
                               [1]                                           
                               [0]                                           
                            >= [0]                                           
                               [1]                                           
                               [0]                                           
                            =  a__geq(X1,X2)                                 
        
         mark(if(X1,X2,X3)) =  [0 1 0]      [0 1 0]      [0 1 0]      [0]    
                               [0 1 0] X1 + [0 1 0] X2 + [0 1 0] X3 + [1]    
                               [0 0 0]      [0 0 1]      [0 0 1]      [0]    
                            >= [0 1 0]      [0 1 0]      [0 1 0]      [0]    
                               [0 1 0] X1 + [0 1 0] X2 + [0 1 0] X3 + [1]    
                               [0 0 0]      [0 0 1]      [0 0 1]      [0]    
                            =  a__if(mark(X1),X2,X3)                         
        
         mark(minus(X1,X2)) =  [0]                                           
                               [1]                                           
                               [0]                                           
                            >= [0]                                           
                               [0]                                           
                               [0]                                           
                            =  a__minus(X1,X2)                               
        
                 mark(s(X)) =  [0 1 0]     [0]                               
                               [0 1 0] X + [1]                               
                               [0 0 0]     [1]                               
                            >= [0 1 0]     [0]                               
                               [0 1 0] X + [1]                               
                               [0 0 0]     [1]                               
                            =  s(mark(X))                                    
        
* Step 5: NaturalMI WORST_CASE(?,O(n^3))
    + Considered Problem:
        - Strict TRS:
            a__div(s(X),s(Y)) -> a__if(a__geq(X,Y),s(div(minus(X,Y),s(Y))),0())
            a__geq(X,0()) -> true()
            a__geq(X1,X2) -> geq(X1,X2)
            a__geq(0(),s(Y)) -> false()
            a__if(X1,X2,X3) -> if(X1,X2,X3)
            a__if(false(),X,Y) -> mark(Y)
            a__if(true(),X,Y) -> mark(X)
            a__minus(X1,X2) -> minus(X1,X2)
            a__minus(0(),Y) -> 0()
            mark(0()) -> 0()
            mark(div(X1,X2)) -> a__div(mark(X1),X2)
            mark(geq(X1,X2)) -> a__geq(X1,X2)
            mark(if(X1,X2,X3)) -> a__if(mark(X1),X2,X3)
            mark(minus(X1,X2)) -> a__minus(X1,X2)
            mark(s(X)) -> s(mark(X))
        - Weak TRS:
            a__div(X1,X2) -> div(X1,X2)
            a__div(0(),s(Y)) -> 0()
            a__geq(s(X),s(Y)) -> a__geq(X,Y)
            a__minus(s(X),s(Y)) -> a__minus(X,Y)
            mark(false()) -> false()
            mark(true()) -> true()
        - Signature:
            {a__div/2,a__geq/2,a__if/3,a__minus/2,mark/1} / {0/0,div/2,false/0,geq/2,if/3,minus/2,s/1,true/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {a__div,a__geq,a__if,a__minus,mark} and constructors {0
            ,div,false,geq,if,minus,s,true}
    + Applied Processor:
        NaturalMI {miDimension = 3, miDegree = 3, 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(a__div) = {1},
          uargs(a__if) = {1},
          uargs(s) = {1}
        
        Following symbols are considered usable:
          {a__div,a__geq,a__if,a__minus,mark}
        TcT has computed the following interpretation:
                 p(0) = [0]                                       
                        [0]                                       
                        [0]                                       
            p(a__div) = [1 1 0]      [0 0 1]      [0]             
                        [0 1 0] x1 + [0 0 0] x2 + [0]             
                        [0 0 1]      [0 0 1]      [0]             
            p(a__geq) = [0 0 0]      [1]                          
                        [0 0 0] x1 + [0]                          
                        [0 0 1]      [0]                          
             p(a__if) = [1 0 0]      [1 0 1]      [1 0 1]      [0]
                        [0 0 0] x1 + [0 1 0] x2 + [0 1 0] x3 + [0]
                        [0 0 1]      [0 0 1]      [0 0 1]      [0]
          p(a__minus) = [1 1 0]      [0]                          
                        [0 0 0] x1 + [0]                          
                        [0 0 0]      [0]                          
               p(div) = [1 1 0]      [0 0 0]      [0]             
                        [0 1 0] x1 + [0 0 0] x2 + [0]             
                        [0 0 1]      [0 0 1]      [0]             
             p(false) = [0]                                       
                        [0]                                       
                        [0]                                       
               p(geq) = [0 0 0]      [1]                          
                        [0 0 0] x1 + [0]                          
                        [0 0 1]      [0]                          
                p(if) = [1 0 0]      [1 0 0]      [1 0 0]      [0]
                        [0 0 0] x1 + [0 1 0] x2 + [0 1 0] x3 + [0]
                        [0 0 1]      [0 0 1]      [0 0 1]      [0]
              p(mark) = [1 0 1]      [0]                          
                        [0 1 0] x1 + [0]                          
                        [0 0 1]      [0]                          
             p(minus) = [1 1 0]      [0]                          
                        [0 0 0] x1 + [0]                          
                        [0 0 0]      [0]                          
                 p(s) = [1 1 0]      [0]                          
                        [0 0 0] x1 + [1]                          
                        [0 0 1]      [0]                          
              p(true) = [0]                                       
                        [0]                                       
                        [0]                                       
        
        Following rules are strictly oriented:
           a__geq(X,0()) = [0 0 0]     [1]
                           [0 0 0] X + [0]
                           [0 0 1]     [0]
                         > [0]            
                           [0]            
                           [0]            
                         = true()         
        
        a__geq(0(),s(Y)) = [1]            
                           [0]            
                           [0]            
                         > [0]            
                           [0]            
                           [0]            
                         = false()        
        
        
        Following rules are (at-least) weakly oriented:
              a__div(X1,X2) =  [1 1 0]      [0 0 1]      [0]                 
                               [0 1 0] X1 + [0 0 0] X2 + [0]                 
                               [0 0 1]      [0 0 1]      [0]                 
                            >= [1 1 0]      [0 0 0]      [0]                 
                               [0 1 0] X1 + [0 0 0] X2 + [0]                 
                               [0 0 1]      [0 0 1]      [0]                 
                            =  div(X1,X2)                                    
        
           a__div(0(),s(Y)) =  [0 0 1]     [0]                               
                               [0 0 0] Y + [0]                               
                               [0 0 1]     [0]                               
                            >= [0]                                           
                               [0]                                           
                               [0]                                           
                            =  0()                                           
        
          a__div(s(X),s(Y)) =  [1 1 0]     [0 0 1]     [1]                   
                               [0 0 0] X + [0 0 0] Y + [1]                   
                               [0 0 1]     [0 0 1]     [0]                   
                            >= [1 1 0]     [0 0 1]     [1]                   
                               [0 0 0] X + [0 0 0] Y + [1]                   
                               [0 0 1]     [0 0 1]     [0]                   
                            =  a__if(a__geq(X,Y),s(div(minus(X,Y),s(Y))),0())
        
              a__geq(X1,X2) =  [0 0 0]      [1]                              
                               [0 0 0] X1 + [0]                              
                               [0 0 1]      [0]                              
                            >= [0 0 0]      [1]                              
                               [0 0 0] X1 + [0]                              
                               [0 0 1]      [0]                              
                            =  geq(X1,X2)                                    
        
          a__geq(s(X),s(Y)) =  [0 0 0]     [1]                               
                               [0 0 0] X + [0]                               
                               [0 0 1]     [0]                               
                            >= [0 0 0]     [1]                               
                               [0 0 0] X + [0]                               
                               [0 0 1]     [0]                               
                            =  a__geq(X,Y)                                   
        
            a__if(X1,X2,X3) =  [1 0 0]      [1 0 1]      [1 0 1]      [0]    
                               [0 0 0] X1 + [0 1 0] X2 + [0 1 0] X3 + [0]    
                               [0 0 1]      [0 0 1]      [0 0 1]      [0]    
                            >= [1 0 0]      [1 0 0]      [1 0 0]      [0]    
                               [0 0 0] X1 + [0 1 0] X2 + [0 1 0] X3 + [0]    
                               [0 0 1]      [0 0 1]      [0 0 1]      [0]    
                            =  if(X1,X2,X3)                                  
        
         a__if(false(),X,Y) =  [1 0 1]     [1 0 1]     [0]                   
                               [0 1 0] X + [0 1 0] Y + [0]                   
                               [0 0 1]     [0 0 1]     [0]                   
                            >= [1 0 1]     [0]                               
                               [0 1 0] Y + [0]                               
                               [0 0 1]     [0]                               
                            =  mark(Y)                                       
        
          a__if(true(),X,Y) =  [1 0 1]     [1 0 1]     [0]                   
                               [0 1 0] X + [0 1 0] Y + [0]                   
                               [0 0 1]     [0 0 1]     [0]                   
                            >= [1 0 1]     [0]                               
                               [0 1 0] X + [0]                               
                               [0 0 1]     [0]                               
                            =  mark(X)                                       
        
            a__minus(X1,X2) =  [1 1 0]      [0]                              
                               [0 0 0] X1 + [0]                              
                               [0 0 0]      [0]                              
                            >= [1 1 0]      [0]                              
                               [0 0 0] X1 + [0]                              
                               [0 0 0]      [0]                              
                            =  minus(X1,X2)                                  
        
            a__minus(0(),Y) =  [0]                                           
                               [0]                                           
                               [0]                                           
                            >= [0]                                           
                               [0]                                           
                               [0]                                           
                            =  0()                                           
        
        a__minus(s(X),s(Y)) =  [1 1 0]     [1]                               
                               [0 0 0] X + [0]                               
                               [0 0 0]     [0]                               
                            >= [1 1 0]     [0]                               
                               [0 0 0] X + [0]                               
                               [0 0 0]     [0]                               
                            =  a__minus(X,Y)                                 
        
                  mark(0()) =  [0]                                           
                               [0]                                           
                               [0]                                           
                            >= [0]                                           
                               [0]                                           
                               [0]                                           
                            =  0()                                           
        
           mark(div(X1,X2)) =  [1 1 1]      [0 0 1]      [0]                 
                               [0 1 0] X1 + [0 0 0] X2 + [0]                 
                               [0 0 1]      [0 0 1]      [0]                 
                            >= [1 1 1]      [0 0 1]      [0]                 
                               [0 1 0] X1 + [0 0 0] X2 + [0]                 
                               [0 0 1]      [0 0 1]      [0]                 
                            =  a__div(mark(X1),X2)                           
        
              mark(false()) =  [0]                                           
                               [0]                                           
                               [0]                                           
                            >= [0]                                           
                               [0]                                           
                               [0]                                           
                            =  false()                                       
        
           mark(geq(X1,X2)) =  [0 0 1]      [1]                              
                               [0 0 0] X1 + [0]                              
                               [0 0 1]      [0]                              
                            >= [0 0 0]      [1]                              
                               [0 0 0] X1 + [0]                              
                               [0 0 1]      [0]                              
                            =  a__geq(X1,X2)                                 
        
         mark(if(X1,X2,X3)) =  [1 0 1]      [1 0 1]      [1 0 1]      [0]    
                               [0 0 0] X1 + [0 1 0] X2 + [0 1 0] X3 + [0]    
                               [0 0 1]      [0 0 1]      [0 0 1]      [0]    
                            >= [1 0 1]      [1 0 1]      [1 0 1]      [0]    
                               [0 0 0] X1 + [0 1 0] X2 + [0 1 0] X3 + [0]    
                               [0 0 1]      [0 0 1]      [0 0 1]      [0]    
                            =  a__if(mark(X1),X2,X3)                         
        
         mark(minus(X1,X2)) =  [1 1 0]      [0]                              
                               [0 0 0] X1 + [0]                              
                               [0 0 0]      [0]                              
                            >= [1 1 0]      [0]                              
                               [0 0 0] X1 + [0]                              
                               [0 0 0]      [0]                              
                            =  a__minus(X1,X2)                               
        
                 mark(s(X)) =  [1 1 1]     [0]                               
                               [0 0 0] X + [1]                               
                               [0 0 1]     [0]                               
                            >= [1 1 1]     [0]                               
                               [0 0 0] X + [1]                               
                               [0 0 1]     [0]                               
                            =  s(mark(X))                                    
        
               mark(true()) =  [0]                                           
                               [0]                                           
                               [0]                                           
                            >= [0]                                           
                               [0]                                           
                               [0]                                           
                            =  true()                                        
        
* Step 6: NaturalMI WORST_CASE(?,O(n^3))
    + Considered Problem:
        - Strict TRS:
            a__div(s(X),s(Y)) -> a__if(a__geq(X,Y),s(div(minus(X,Y),s(Y))),0())
            a__geq(X1,X2) -> geq(X1,X2)
            a__if(X1,X2,X3) -> if(X1,X2,X3)
            a__if(false(),X,Y) -> mark(Y)
            a__if(true(),X,Y) -> mark(X)
            a__minus(X1,X2) -> minus(X1,X2)
            a__minus(0(),Y) -> 0()
            mark(0()) -> 0()
            mark(div(X1,X2)) -> a__div(mark(X1),X2)
            mark(geq(X1,X2)) -> a__geq(X1,X2)
            mark(if(X1,X2,X3)) -> a__if(mark(X1),X2,X3)
            mark(minus(X1,X2)) -> a__minus(X1,X2)
            mark(s(X)) -> s(mark(X))
        - Weak TRS:
            a__div(X1,X2) -> div(X1,X2)
            a__div(0(),s(Y)) -> 0()
            a__geq(X,0()) -> true()
            a__geq(0(),s(Y)) -> false()
            a__geq(s(X),s(Y)) -> a__geq(X,Y)
            a__minus(s(X),s(Y)) -> a__minus(X,Y)
            mark(false()) -> false()
            mark(true()) -> true()
        - Signature:
            {a__div/2,a__geq/2,a__if/3,a__minus/2,mark/1} / {0/0,div/2,false/0,geq/2,if/3,minus/2,s/1,true/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {a__div,a__geq,a__if,a__minus,mark} and constructors {0
            ,div,false,geq,if,minus,s,true}
    + Applied Processor:
        NaturalMI {miDimension = 3, miDegree = 3, 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(a__div) = {1},
          uargs(a__if) = {1},
          uargs(s) = {1}
        
        Following symbols are considered usable:
          {a__div,a__geq,a__if,a__minus,mark}
        TcT has computed the following interpretation:
                 p(0) = [0]                                       
                        [0]                                       
                        [0]                                       
            p(a__div) = [1 0 1]      [0 1 1]      [1]             
                        [0 1 1] x1 + [0 1 1] x2 + [1]             
                        [0 0 1]      [0 0 0]      [0]             
            p(a__geq) = [0 0 0]      [0]                          
                        [0 1 0] x1 + [0]                          
                        [0 0 0]      [0]                          
             p(a__if) = [1 0 0]      [0 1 0]      [0 1 0]      [0]
                        [0 1 0] x1 + [0 1 0] x2 + [0 1 0] x3 + [0]
                        [0 0 0]      [0 0 1]      [0 0 1]      [0]
          p(a__minus) = [1]                                       
                        [1]                                       
                        [0]                                       
               p(div) = [1 0 0]      [0 0 0]      [1]             
                        [0 1 1] x1 + [0 1 1] x2 + [1]             
                        [0 0 1]      [0 0 0]      [0]             
             p(false) = [0]                                       
                        [0]                                       
                        [0]                                       
               p(geq) = [0 0 0]      [0]                          
                        [0 1 0] x1 + [0]                          
                        [0 0 0]      [0]                          
                p(if) = [0 0 0]      [0 1 0]      [0 0 0]      [0]
                        [0 1 0] x1 + [0 1 0] x2 + [0 1 0] x3 + [0]
                        [0 0 0]      [0 0 1]      [0 0 1]      [0]
              p(mark) = [0 1 0]      [0]                          
                        [0 1 0] x1 + [0]                          
                        [0 0 1]      [0]                          
             p(minus) = [1]                                       
                        [1]                                       
                        [0]                                       
                 p(s) = [1 0 0]      [0]                          
                        [0 1 1] x1 + [0]                          
                        [0 0 1]      [1]                          
              p(true) = [0]                                       
                        [0]                                       
                        [0]                                       
        
        Following rules are strictly oriented:
        a__minus(0(),Y) = [1]
                          [1]
                          [0]
                        > [0]
                          [0]
                          [0]
                        = 0()
        
        
        Following rules are (at-least) weakly oriented:
              a__div(X1,X2) =  [1 0 1]      [0 1 1]      [1]                 
                               [0 1 1] X1 + [0 1 1] X2 + [1]                 
                               [0 0 1]      [0 0 0]      [0]                 
                            >= [1 0 0]      [0 0 0]      [1]                 
                               [0 1 1] X1 + [0 1 1] X2 + [1]                 
                               [0 0 1]      [0 0 0]      [0]                 
                            =  div(X1,X2)                                    
        
           a__div(0(),s(Y)) =  [0 1 2]     [2]                               
                               [0 1 2] Y + [2]                               
                               [0 0 0]     [0]                               
                            >= [0]                                           
                               [0]                                           
                               [0]                                           
                            =  0()                                           
        
          a__div(s(X),s(Y)) =  [1 0 1]     [0 1 2]     [3]                   
                               [0 1 2] X + [0 1 2] Y + [3]                   
                               [0 0 1]     [0 0 0]     [1]                   
                            >= [0 0 0]     [0 1 2]     [3]                   
                               [0 1 0] X + [0 1 2] Y + [3]                   
                               [0 0 0]     [0 0 0]     [1]                   
                            =  a__if(a__geq(X,Y),s(div(minus(X,Y),s(Y))),0())
        
              a__geq(X,0()) =  [0 0 0]     [0]                               
                               [0 1 0] X + [0]                               
                               [0 0 0]     [0]                               
                            >= [0]                                           
                               [0]                                           
                               [0]                                           
                            =  true()                                        
        
              a__geq(X1,X2) =  [0 0 0]      [0]                              
                               [0 1 0] X1 + [0]                              
                               [0 0 0]      [0]                              
                            >= [0 0 0]      [0]                              
                               [0 1 0] X1 + [0]                              
                               [0 0 0]      [0]                              
                            =  geq(X1,X2)                                    
        
           a__geq(0(),s(Y)) =  [0]                                           
                               [0]                                           
                               [0]                                           
                            >= [0]                                           
                               [0]                                           
                               [0]                                           
                            =  false()                                       
        
          a__geq(s(X),s(Y)) =  [0 0 0]     [0]                               
                               [0 1 1] X + [0]                               
                               [0 0 0]     [0]                               
                            >= [0 0 0]     [0]                               
                               [0 1 0] X + [0]                               
                               [0 0 0]     [0]                               
                            =  a__geq(X,Y)                                   
        
            a__if(X1,X2,X3) =  [1 0 0]      [0 1 0]      [0 1 0]      [0]    
                               [0 1 0] X1 + [0 1 0] X2 + [0 1 0] X3 + [0]    
                               [0 0 0]      [0 0 1]      [0 0 1]      [0]    
                            >= [0 0 0]      [0 1 0]      [0 0 0]      [0]    
                               [0 1 0] X1 + [0 1 0] X2 + [0 1 0] X3 + [0]    
                               [0 0 0]      [0 0 1]      [0 0 1]      [0]    
                            =  if(X1,X2,X3)                                  
        
         a__if(false(),X,Y) =  [0 1 0]     [0 1 0]     [0]                   
                               [0 1 0] X + [0 1 0] Y + [0]                   
                               [0 0 1]     [0 0 1]     [0]                   
                            >= [0 1 0]     [0]                               
                               [0 1 0] Y + [0]                               
                               [0 0 1]     [0]                               
                            =  mark(Y)                                       
        
          a__if(true(),X,Y) =  [0 1 0]     [0 1 0]     [0]                   
                               [0 1 0] X + [0 1 0] Y + [0]                   
                               [0 0 1]     [0 0 1]     [0]                   
                            >= [0 1 0]     [0]                               
                               [0 1 0] X + [0]                               
                               [0 0 1]     [0]                               
                            =  mark(X)                                       
        
            a__minus(X1,X2) =  [1]                                           
                               [1]                                           
                               [0]                                           
                            >= [1]                                           
                               [1]                                           
                               [0]                                           
                            =  minus(X1,X2)                                  
        
        a__minus(s(X),s(Y)) =  [1]                                           
                               [1]                                           
                               [0]                                           
                            >= [1]                                           
                               [1]                                           
                               [0]                                           
                            =  a__minus(X,Y)                                 
        
                  mark(0()) =  [0]                                           
                               [0]                                           
                               [0]                                           
                            >= [0]                                           
                               [0]                                           
                               [0]                                           
                            =  0()                                           
        
           mark(div(X1,X2)) =  [0 1 1]      [0 1 1]      [1]                 
                               [0 1 1] X1 + [0 1 1] X2 + [1]                 
                               [0 0 1]      [0 0 0]      [0]                 
                            >= [0 1 1]      [0 1 1]      [1]                 
                               [0 1 1] X1 + [0 1 1] X2 + [1]                 
                               [0 0 1]      [0 0 0]      [0]                 
                            =  a__div(mark(X1),X2)                           
        
              mark(false()) =  [0]                                           
                               [0]                                           
                               [0]                                           
                            >= [0]                                           
                               [0]                                           
                               [0]                                           
                            =  false()                                       
        
           mark(geq(X1,X2)) =  [0 1 0]      [0]                              
                               [0 1 0] X1 + [0]                              
                               [0 0 0]      [0]                              
                            >= [0 0 0]      [0]                              
                               [0 1 0] X1 + [0]                              
                               [0 0 0]      [0]                              
                            =  a__geq(X1,X2)                                 
        
         mark(if(X1,X2,X3)) =  [0 1 0]      [0 1 0]      [0 1 0]      [0]    
                               [0 1 0] X1 + [0 1 0] X2 + [0 1 0] X3 + [0]    
                               [0 0 0]      [0 0 1]      [0 0 1]      [0]    
                            >= [0 1 0]      [0 1 0]      [0 1 0]      [0]    
                               [0 1 0] X1 + [0 1 0] X2 + [0 1 0] X3 + [0]    
                               [0 0 0]      [0 0 1]      [0 0 1]      [0]    
                            =  a__if(mark(X1),X2,X3)                         
        
         mark(minus(X1,X2)) =  [1]                                           
                               [1]                                           
                               [0]                                           
                            >= [1]                                           
                               [1]                                           
                               [0]                                           
                            =  a__minus(X1,X2)                               
        
                 mark(s(X)) =  [0 1 1]     [0]                               
                               [0 1 1] X + [0]                               
                               [0 0 1]     [1]                               
                            >= [0 1 0]     [0]                               
                               [0 1 1] X + [0]                               
                               [0 0 1]     [1]                               
                            =  s(mark(X))                                    
        
               mark(true()) =  [0]                                           
                               [0]                                           
                               [0]                                           
                            >= [0]                                           
                               [0]                                           
                               [0]                                           
                            =  true()                                        
        
* Step 7: NaturalMI WORST_CASE(?,O(n^3))
    + Considered Problem:
        - Strict TRS:
            a__div(s(X),s(Y)) -> a__if(a__geq(X,Y),s(div(minus(X,Y),s(Y))),0())
            a__geq(X1,X2) -> geq(X1,X2)
            a__if(X1,X2,X3) -> if(X1,X2,X3)
            a__if(false(),X,Y) -> mark(Y)
            a__if(true(),X,Y) -> mark(X)
            a__minus(X1,X2) -> minus(X1,X2)
            mark(0()) -> 0()
            mark(div(X1,X2)) -> a__div(mark(X1),X2)
            mark(geq(X1,X2)) -> a__geq(X1,X2)
            mark(if(X1,X2,X3)) -> a__if(mark(X1),X2,X3)
            mark(minus(X1,X2)) -> a__minus(X1,X2)
            mark(s(X)) -> s(mark(X))
        - Weak TRS:
            a__div(X1,X2) -> div(X1,X2)
            a__div(0(),s(Y)) -> 0()
            a__geq(X,0()) -> true()
            a__geq(0(),s(Y)) -> false()
            a__geq(s(X),s(Y)) -> a__geq(X,Y)
            a__minus(0(),Y) -> 0()
            a__minus(s(X),s(Y)) -> a__minus(X,Y)
            mark(false()) -> false()
            mark(true()) -> true()
        - Signature:
            {a__div/2,a__geq/2,a__if/3,a__minus/2,mark/1} / {0/0,div/2,false/0,geq/2,if/3,minus/2,s/1,true/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {a__div,a__geq,a__if,a__minus,mark} and constructors {0
            ,div,false,geq,if,minus,s,true}
    + Applied Processor:
        NaturalMI {miDimension = 3, miDegree = 3, 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(a__div) = {1},
          uargs(a__if) = {1},
          uargs(s) = {1}
        
        Following symbols are considered usable:
          {a__div,a__geq,a__if,a__minus,mark}
        TcT has computed the following interpretation:
                 p(0) = [0]                                       
                        [0]                                       
                        [0]                                       
            p(a__div) = [1 0 1]      [0]                          
                        [0 1 1] x1 + [0]                          
                        [0 0 1]      [0]                          
            p(a__geq) = [0]                                       
                        [0]                                       
                        [0]                                       
             p(a__if) = [1 0 0]      [0 1 0]      [0 1 0]      [0]
                        [0 1 0] x1 + [0 1 0] x2 + [0 1 0] x3 + [0]
                        [0 0 0]      [0 0 1]      [0 0 1]      [0]
          p(a__minus) = [0]                                       
                        [0]                                       
                        [0]                                       
               p(div) = [0 0 0]      [0]                          
                        [0 1 1] x1 + [0]                          
                        [0 0 1]      [0]                          
             p(false) = [0]                                       
                        [0]                                       
                        [0]                                       
               p(geq) = [0]                                       
                        [0]                                       
                        [0]                                       
                p(if) = [1 0 0]      [0 0 0]      [0 1 0]      [0]
                        [0 1 0] x1 + [0 1 0] x2 + [0 1 0] x3 + [0]
                        [0 0 0]      [0 0 1]      [0 0 1]      [0]
              p(mark) = [0 1 0]      [0]                          
                        [0 1 0] x1 + [0]                          
                        [0 0 1]      [0]                          
             p(minus) = [0]                                       
                        [0]                                       
                        [0]                                       
                 p(s) = [1 0 0]      [0]                          
                        [0 1 0] x1 + [0]                          
                        [0 0 0]      [1]                          
              p(true) = [0]                                       
                        [0]                                       
                        [0]                                       
        
        Following rules are strictly oriented:
        a__div(s(X),s(Y)) = [1 0 0]     [1]                               
                            [0 1 0] X + [1]                               
                            [0 0 0]     [1]                               
                          > [0]                                           
                            [0]                                           
                            [1]                                           
                          = a__if(a__geq(X,Y),s(div(minus(X,Y),s(Y))),0())
        
        
        Following rules are (at-least) weakly oriented:
              a__div(X1,X2) =  [1 0 1]      [0]                          
                               [0 1 1] X1 + [0]                          
                               [0 0 1]      [0]                          
                            >= [0 0 0]      [0]                          
                               [0 1 1] X1 + [0]                          
                               [0 0 1]      [0]                          
                            =  div(X1,X2)                                
        
           a__div(0(),s(Y)) =  [0]                                       
                               [0]                                       
                               [0]                                       
                            >= [0]                                       
                               [0]                                       
                               [0]                                       
                            =  0()                                       
        
              a__geq(X,0()) =  [0]                                       
                               [0]                                       
                               [0]                                       
                            >= [0]                                       
                               [0]                                       
                               [0]                                       
                            =  true()                                    
        
              a__geq(X1,X2) =  [0]                                       
                               [0]                                       
                               [0]                                       
                            >= [0]                                       
                               [0]                                       
                               [0]                                       
                            =  geq(X1,X2)                                
        
           a__geq(0(),s(Y)) =  [0]                                       
                               [0]                                       
                               [0]                                       
                            >= [0]                                       
                               [0]                                       
                               [0]                                       
                            =  false()                                   
        
          a__geq(s(X),s(Y)) =  [0]                                       
                               [0]                                       
                               [0]                                       
                            >= [0]                                       
                               [0]                                       
                               [0]                                       
                            =  a__geq(X,Y)                               
        
            a__if(X1,X2,X3) =  [1 0 0]      [0 1 0]      [0 1 0]      [0]
                               [0 1 0] X1 + [0 1 0] X2 + [0 1 0] X3 + [0]
                               [0 0 0]      [0 0 1]      [0 0 1]      [0]
                            >= [1 0 0]      [0 0 0]      [0 1 0]      [0]
                               [0 1 0] X1 + [0 1 0] X2 + [0 1 0] X3 + [0]
                               [0 0 0]      [0 0 1]      [0 0 1]      [0]
                            =  if(X1,X2,X3)                              
        
         a__if(false(),X,Y) =  [0 1 0]     [0 1 0]     [0]               
                               [0 1 0] X + [0 1 0] Y + [0]               
                               [0 0 1]     [0 0 1]     [0]               
                            >= [0 1 0]     [0]                           
                               [0 1 0] Y + [0]                           
                               [0 0 1]     [0]                           
                            =  mark(Y)                                   
        
          a__if(true(),X,Y) =  [0 1 0]     [0 1 0]     [0]               
                               [0 1 0] X + [0 1 0] Y + [0]               
                               [0 0 1]     [0 0 1]     [0]               
                            >= [0 1 0]     [0]                           
                               [0 1 0] X + [0]                           
                               [0 0 1]     [0]                           
                            =  mark(X)                                   
        
            a__minus(X1,X2) =  [0]                                       
                               [0]                                       
                               [0]                                       
                            >= [0]                                       
                               [0]                                       
                               [0]                                       
                            =  minus(X1,X2)                              
        
            a__minus(0(),Y) =  [0]                                       
                               [0]                                       
                               [0]                                       
                            >= [0]                                       
                               [0]                                       
                               [0]                                       
                            =  0()                                       
        
        a__minus(s(X),s(Y)) =  [0]                                       
                               [0]                                       
                               [0]                                       
                            >= [0]                                       
                               [0]                                       
                               [0]                                       
                            =  a__minus(X,Y)                             
        
                  mark(0()) =  [0]                                       
                               [0]                                       
                               [0]                                       
                            >= [0]                                       
                               [0]                                       
                               [0]                                       
                            =  0()                                       
        
           mark(div(X1,X2)) =  [0 1 1]      [0]                          
                               [0 1 1] X1 + [0]                          
                               [0 0 1]      [0]                          
                            >= [0 1 1]      [0]                          
                               [0 1 1] X1 + [0]                          
                               [0 0 1]      [0]                          
                            =  a__div(mark(X1),X2)                       
        
              mark(false()) =  [0]                                       
                               [0]                                       
                               [0]                                       
                            >= [0]                                       
                               [0]                                       
                               [0]                                       
                            =  false()                                   
        
           mark(geq(X1,X2)) =  [0]                                       
                               [0]                                       
                               [0]                                       
                            >= [0]                                       
                               [0]                                       
                               [0]                                       
                            =  a__geq(X1,X2)                             
        
         mark(if(X1,X2,X3)) =  [0 1 0]      [0 1 0]      [0 1 0]      [0]
                               [0 1 0] X1 + [0 1 0] X2 + [0 1 0] X3 + [0]
                               [0 0 0]      [0 0 1]      [0 0 1]      [0]
                            >= [0 1 0]      [0 1 0]      [0 1 0]      [0]
                               [0 1 0] X1 + [0 1 0] X2 + [0 1 0] X3 + [0]
                               [0 0 0]      [0 0 1]      [0 0 1]      [0]
                            =  a__if(mark(X1),X2,X3)                     
        
         mark(minus(X1,X2)) =  [0]                                       
                               [0]                                       
                               [0]                                       
                            >= [0]                                       
                               [0]                                       
                               [0]                                       
                            =  a__minus(X1,X2)                           
        
                 mark(s(X)) =  [0 1 0]     [0]                           
                               [0 1 0] X + [0]                           
                               [0 0 0]     [1]                           
                            >= [0 1 0]     [0]                           
                               [0 1 0] X + [0]                           
                               [0 0 0]     [1]                           
                            =  s(mark(X))                                
        
               mark(true()) =  [0]                                       
                               [0]                                       
                               [0]                                       
                            >= [0]                                       
                               [0]                                       
                               [0]                                       
                            =  true()                                    
        
* Step 8: NaturalMI WORST_CASE(?,O(n^3))
    + Considered Problem:
        - Strict TRS:
            a__geq(X1,X2) -> geq(X1,X2)
            a__if(X1,X2,X3) -> if(X1,X2,X3)
            a__if(false(),X,Y) -> mark(Y)
            a__if(true(),X,Y) -> mark(X)
            a__minus(X1,X2) -> minus(X1,X2)
            mark(0()) -> 0()
            mark(div(X1,X2)) -> a__div(mark(X1),X2)
            mark(geq(X1,X2)) -> a__geq(X1,X2)
            mark(if(X1,X2,X3)) -> a__if(mark(X1),X2,X3)
            mark(minus(X1,X2)) -> a__minus(X1,X2)
            mark(s(X)) -> s(mark(X))
        - Weak TRS:
            a__div(X1,X2) -> div(X1,X2)
            a__div(0(),s(Y)) -> 0()
            a__div(s(X),s(Y)) -> a__if(a__geq(X,Y),s(div(minus(X,Y),s(Y))),0())
            a__geq(X,0()) -> true()
            a__geq(0(),s(Y)) -> false()
            a__geq(s(X),s(Y)) -> a__geq(X,Y)
            a__minus(0(),Y) -> 0()
            a__minus(s(X),s(Y)) -> a__minus(X,Y)
            mark(false()) -> false()
            mark(true()) -> true()
        - Signature:
            {a__div/2,a__geq/2,a__if/3,a__minus/2,mark/1} / {0/0,div/2,false/0,geq/2,if/3,minus/2,s/1,true/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {a__div,a__geq,a__if,a__minus,mark} and constructors {0
            ,div,false,geq,if,minus,s,true}
    + Applied Processor:
        NaturalMI {miDimension = 3, miDegree = 3, 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(a__div) = {1},
          uargs(a__if) = {1},
          uargs(s) = {1}
        
        Following symbols are considered usable:
          {a__div,a__geq,a__if,a__minus,mark}
        TcT has computed the following interpretation:
                 p(0) = [0]                                       
                        [0]                                       
                        [0]                                       
            p(a__div) = [1 0 0]      [1]                          
                        [0 1 1] x1 + [1]                          
                        [0 0 1]      [0]                          
            p(a__geq) = [0]                                       
                        [0]                                       
                        [0]                                       
             p(a__if) = [1 0 0]      [0 1 0]      [0 1 0]      [0]
                        [0 1 0] x1 + [0 1 0] x2 + [0 1 0] x3 + [1]
                        [0 0 0]      [0 0 1]      [0 0 1]      [0]
          p(a__minus) = [0]                                       
                        [0]                                       
                        [0]                                       
               p(div) = [0 0 0]      [1]                          
                        [0 1 1] x1 + [1]                          
                        [0 0 1]      [0]                          
             p(false) = [0]                                       
                        [0]                                       
                        [0]                                       
               p(geq) = [0]                                       
                        [0]                                       
                        [0]                                       
                p(if) = [1 0 0]      [0 0 0]      [0 1 0]      [0]
                        [0 1 0] x1 + [0 1 0] x2 + [0 1 0] x3 + [1]
                        [0 0 0]      [0 0 1]      [0 0 1]      [0]
              p(mark) = [0 1 0]      [0]                          
                        [0 1 0] x1 + [1]                          
                        [0 0 1]      [0]                          
             p(minus) = [0]                                       
                        [0]                                       
                        [0]                                       
                 p(s) = [1 0 0]      [1]                          
                        [0 1 0] x1 + [1]                          
                        [0 0 0]      [1]                          
              p(true) = [0]                                       
                        [0]                                       
                        [0]                                       
        
        Following rules are strictly oriented:
        mark(if(X1,X2,X3)) = [0 1 0]      [0 1 0]      [0 1 0]      [1]
                             [0 1 0] X1 + [0 1 0] X2 + [0 1 0] X3 + [2]
                             [0 0 0]      [0 0 1]      [0 0 1]      [0]
                           > [0 1 0]      [0 1 0]      [0 1 0]      [0]
                             [0 1 0] X1 + [0 1 0] X2 + [0 1 0] X3 + [2]
                             [0 0 0]      [0 0 1]      [0 0 1]      [0]
                           = a__if(mark(X1),X2,X3)                     
        
        
        Following rules are (at-least) weakly oriented:
              a__div(X1,X2) =  [1 0 0]      [1]                              
                               [0 1 1] X1 + [1]                              
                               [0 0 1]      [0]                              
                            >= [0 0 0]      [1]                              
                               [0 1 1] X1 + [1]                              
                               [0 0 1]      [0]                              
                            =  div(X1,X2)                                    
        
           a__div(0(),s(Y)) =  [1]                                           
                               [1]                                           
                               [0]                                           
                            >= [0]                                           
                               [0]                                           
                               [0]                                           
                            =  0()                                           
        
          a__div(s(X),s(Y)) =  [1 0 0]     [2]                               
                               [0 1 0] X + [3]                               
                               [0 0 0]     [1]                               
                            >= [2]                                           
                               [3]                                           
                               [1]                                           
                            =  a__if(a__geq(X,Y),s(div(minus(X,Y),s(Y))),0())
        
              a__geq(X,0()) =  [0]                                           
                               [0]                                           
                               [0]                                           
                            >= [0]                                           
                               [0]                                           
                               [0]                                           
                            =  true()                                        
        
              a__geq(X1,X2) =  [0]                                           
                               [0]                                           
                               [0]                                           
                            >= [0]                                           
                               [0]                                           
                               [0]                                           
                            =  geq(X1,X2)                                    
        
           a__geq(0(),s(Y)) =  [0]                                           
                               [0]                                           
                               [0]                                           
                            >= [0]                                           
                               [0]                                           
                               [0]                                           
                            =  false()                                       
        
          a__geq(s(X),s(Y)) =  [0]                                           
                               [0]                                           
                               [0]                                           
                            >= [0]                                           
                               [0]                                           
                               [0]                                           
                            =  a__geq(X,Y)                                   
        
            a__if(X1,X2,X3) =  [1 0 0]      [0 1 0]      [0 1 0]      [0]    
                               [0 1 0] X1 + [0 1 0] X2 + [0 1 0] X3 + [1]    
                               [0 0 0]      [0 0 1]      [0 0 1]      [0]    
                            >= [1 0 0]      [0 0 0]      [0 1 0]      [0]    
                               [0 1 0] X1 + [0 1 0] X2 + [0 1 0] X3 + [1]    
                               [0 0 0]      [0 0 1]      [0 0 1]      [0]    
                            =  if(X1,X2,X3)                                  
        
         a__if(false(),X,Y) =  [0 1 0]     [0 1 0]     [0]                   
                               [0 1 0] X + [0 1 0] Y + [1]                   
                               [0 0 1]     [0 0 1]     [0]                   
                            >= [0 1 0]     [0]                               
                               [0 1 0] Y + [1]                               
                               [0 0 1]     [0]                               
                            =  mark(Y)                                       
        
          a__if(true(),X,Y) =  [0 1 0]     [0 1 0]     [0]                   
                               [0 1 0] X + [0 1 0] Y + [1]                   
                               [0 0 1]     [0 0 1]     [0]                   
                            >= [0 1 0]     [0]                               
                               [0 1 0] X + [1]                               
                               [0 0 1]     [0]                               
                            =  mark(X)                                       
        
            a__minus(X1,X2) =  [0]                                           
                               [0]                                           
                               [0]                                           
                            >= [0]                                           
                               [0]                                           
                               [0]                                           
                            =  minus(X1,X2)                                  
        
            a__minus(0(),Y) =  [0]                                           
                               [0]                                           
                               [0]                                           
                            >= [0]                                           
                               [0]                                           
                               [0]                                           
                            =  0()                                           
        
        a__minus(s(X),s(Y)) =  [0]                                           
                               [0]                                           
                               [0]                                           
                            >= [0]                                           
                               [0]                                           
                               [0]                                           
                            =  a__minus(X,Y)                                 
        
                  mark(0()) =  [0]                                           
                               [1]                                           
                               [0]                                           
                            >= [0]                                           
                               [0]                                           
                               [0]                                           
                            =  0()                                           
        
           mark(div(X1,X2)) =  [0 1 1]      [1]                              
                               [0 1 1] X1 + [2]                              
                               [0 0 1]      [0]                              
                            >= [0 1 0]      [1]                              
                               [0 1 1] X1 + [2]                              
                               [0 0 1]      [0]                              
                            =  a__div(mark(X1),X2)                           
        
              mark(false()) =  [0]                                           
                               [1]                                           
                               [0]                                           
                            >= [0]                                           
                               [0]                                           
                               [0]                                           
                            =  false()                                       
        
           mark(geq(X1,X2)) =  [0]                                           
                               [1]                                           
                               [0]                                           
                            >= [0]                                           
                               [0]                                           
                               [0]                                           
                            =  a__geq(X1,X2)                                 
        
         mark(minus(X1,X2)) =  [0]                                           
                               [1]                                           
                               [0]                                           
                            >= [0]                                           
                               [0]                                           
                               [0]                                           
                            =  a__minus(X1,X2)                               
        
                 mark(s(X)) =  [0 1 0]     [1]                               
                               [0 1 0] X + [2]                               
                               [0 0 0]     [1]                               
                            >= [0 1 0]     [1]                               
                               [0 1 0] X + [2]                               
                               [0 0 0]     [1]                               
                            =  s(mark(X))                                    
        
               mark(true()) =  [0]                                           
                               [1]                                           
                               [0]                                           
                            >= [0]                                           
                               [0]                                           
                               [0]                                           
                            =  true()                                        
        
* Step 9: NaturalMI WORST_CASE(?,O(n^3))
    + Considered Problem:
        - Strict TRS:
            a__geq(X1,X2) -> geq(X1,X2)
            a__if(X1,X2,X3) -> if(X1,X2,X3)
            a__if(false(),X,Y) -> mark(Y)
            a__if(true(),X,Y) -> mark(X)
            a__minus(X1,X2) -> minus(X1,X2)
            mark(0()) -> 0()
            mark(div(X1,X2)) -> a__div(mark(X1),X2)
            mark(geq(X1,X2)) -> a__geq(X1,X2)
            mark(minus(X1,X2)) -> a__minus(X1,X2)
            mark(s(X)) -> s(mark(X))
        - Weak TRS:
            a__div(X1,X2) -> div(X1,X2)
            a__div(0(),s(Y)) -> 0()
            a__div(s(X),s(Y)) -> a__if(a__geq(X,Y),s(div(minus(X,Y),s(Y))),0())
            a__geq(X,0()) -> true()
            a__geq(0(),s(Y)) -> false()
            a__geq(s(X),s(Y)) -> a__geq(X,Y)
            a__minus(0(),Y) -> 0()
            a__minus(s(X),s(Y)) -> a__minus(X,Y)
            mark(false()) -> false()
            mark(if(X1,X2,X3)) -> a__if(mark(X1),X2,X3)
            mark(true()) -> true()
        - Signature:
            {a__div/2,a__geq/2,a__if/3,a__minus/2,mark/1} / {0/0,div/2,false/0,geq/2,if/3,minus/2,s/1,true/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {a__div,a__geq,a__if,a__minus,mark} and constructors {0
            ,div,false,geq,if,minus,s,true}
    + Applied Processor:
        NaturalMI {miDimension = 3, miDegree = 3, 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(a__div) = {1},
          uargs(a__if) = {1},
          uargs(s) = {1}
        
        Following symbols are considered usable:
          {a__div,a__geq,a__if,a__minus,mark}
        TcT has computed the following interpretation:
                 p(0) = [0]                                       
                        [0]                                       
                        [0]                                       
            p(a__div) = [1 0 0]      [0]                          
                        [0 1 1] x1 + [0]                          
                        [0 0 1]      [0]                          
            p(a__geq) = [0]                                       
                        [1]                                       
                        [0]                                       
             p(a__if) = [1 0 0]      [0 1 0]      [0 1 0]      [0]
                        [0 1 0] x1 + [0 1 0] x2 + [0 1 0] x3 + [0]
                        [0 0 0]      [0 0 1]      [0 0 1]      [0]
          p(a__minus) = [0]                                       
                        [0]                                       
                        [0]                                       
               p(div) = [0 0 0]      [0]                          
                        [0 1 1] x1 + [0]                          
                        [0 0 1]      [0]                          
             p(false) = [0]                                       
                        [0]                                       
                        [0]                                       
               p(geq) = [0]                                       
                        [1]                                       
                        [0]                                       
                p(if) = [1 0 0]      [0 0 0]      [0 0 0]      [0]
                        [0 1 0] x1 + [0 1 0] x2 + [0 1 0] x3 + [0]
                        [0 0 0]      [0 0 1]      [0 0 1]      [0]
              p(mark) = [0 1 0]      [0]                          
                        [0 1 0] x1 + [0]                          
                        [0 0 1]      [0]                          
             p(minus) = [0]                                       
                        [0]                                       
                        [0]                                       
                 p(s) = [1 0 0]      [0]                          
                        [0 1 0] x1 + [0]                          
                        [0 0 0]      [1]                          
              p(true) = [0]                                       
                        [0]                                       
                        [0]                                       
        
        Following rules are strictly oriented:
        mark(geq(X1,X2)) = [1]          
                           [1]          
                           [0]          
                         > [0]          
                           [1]          
                           [0]          
                         = a__geq(X1,X2)
        
        
        Following rules are (at-least) weakly oriented:
              a__div(X1,X2) =  [1 0 0]      [0]                              
                               [0 1 1] X1 + [0]                              
                               [0 0 1]      [0]                              
                            >= [0 0 0]      [0]                              
                               [0 1 1] X1 + [0]                              
                               [0 0 1]      [0]                              
                            =  div(X1,X2)                                    
        
           a__div(0(),s(Y)) =  [0]                                           
                               [0]                                           
                               [0]                                           
                            >= [0]                                           
                               [0]                                           
                               [0]                                           
                            =  0()                                           
        
          a__div(s(X),s(Y)) =  [1 0 0]     [0]                               
                               [0 1 0] X + [1]                               
                               [0 0 0]     [1]                               
                            >= [0]                                           
                               [1]                                           
                               [1]                                           
                            =  a__if(a__geq(X,Y),s(div(minus(X,Y),s(Y))),0())
        
              a__geq(X,0()) =  [0]                                           
                               [1]                                           
                               [0]                                           
                            >= [0]                                           
                               [0]                                           
                               [0]                                           
                            =  true()                                        
        
              a__geq(X1,X2) =  [0]                                           
                               [1]                                           
                               [0]                                           
                            >= [0]                                           
                               [1]                                           
                               [0]                                           
                            =  geq(X1,X2)                                    
        
           a__geq(0(),s(Y)) =  [0]                                           
                               [1]                                           
                               [0]                                           
                            >= [0]                                           
                               [0]                                           
                               [0]                                           
                            =  false()                                       
        
          a__geq(s(X),s(Y)) =  [0]                                           
                               [1]                                           
                               [0]                                           
                            >= [0]                                           
                               [1]                                           
                               [0]                                           
                            =  a__geq(X,Y)                                   
        
            a__if(X1,X2,X3) =  [1 0 0]      [0 1 0]      [0 1 0]      [0]    
                               [0 1 0] X1 + [0 1 0] X2 + [0 1 0] X3 + [0]    
                               [0 0 0]      [0 0 1]      [0 0 1]      [0]    
                            >= [1 0 0]      [0 0 0]      [0 0 0]      [0]    
                               [0 1 0] X1 + [0 1 0] X2 + [0 1 0] X3 + [0]    
                               [0 0 0]      [0 0 1]      [0 0 1]      [0]    
                            =  if(X1,X2,X3)                                  
        
         a__if(false(),X,Y) =  [0 1 0]     [0 1 0]     [0]                   
                               [0 1 0] X + [0 1 0] Y + [0]                   
                               [0 0 1]     [0 0 1]     [0]                   
                            >= [0 1 0]     [0]                               
                               [0 1 0] Y + [0]                               
                               [0 0 1]     [0]                               
                            =  mark(Y)                                       
        
          a__if(true(),X,Y) =  [0 1 0]     [0 1 0]     [0]                   
                               [0 1 0] X + [0 1 0] Y + [0]                   
                               [0 0 1]     [0 0 1]     [0]                   
                            >= [0 1 0]     [0]                               
                               [0 1 0] X + [0]                               
                               [0 0 1]     [0]                               
                            =  mark(X)                                       
        
            a__minus(X1,X2) =  [0]                                           
                               [0]                                           
                               [0]                                           
                            >= [0]                                           
                               [0]                                           
                               [0]                                           
                            =  minus(X1,X2)                                  
        
            a__minus(0(),Y) =  [0]                                           
                               [0]                                           
                               [0]                                           
                            >= [0]                                           
                               [0]                                           
                               [0]                                           
                            =  0()                                           
        
        a__minus(s(X),s(Y)) =  [0]                                           
                               [0]                                           
                               [0]                                           
                            >= [0]                                           
                               [0]                                           
                               [0]                                           
                            =  a__minus(X,Y)                                 
        
                  mark(0()) =  [0]                                           
                               [0]                                           
                               [0]                                           
                            >= [0]                                           
                               [0]                                           
                               [0]                                           
                            =  0()                                           
        
           mark(div(X1,X2)) =  [0 1 1]      [0]                              
                               [0 1 1] X1 + [0]                              
                               [0 0 1]      [0]                              
                            >= [0 1 0]      [0]                              
                               [0 1 1] X1 + [0]                              
                               [0 0 1]      [0]                              
                            =  a__div(mark(X1),X2)                           
        
              mark(false()) =  [0]                                           
                               [0]                                           
                               [0]                                           
                            >= [0]                                           
                               [0]                                           
                               [0]                                           
                            =  false()                                       
        
         mark(if(X1,X2,X3)) =  [0 1 0]      [0 1 0]      [0 1 0]      [0]    
                               [0 1 0] X1 + [0 1 0] X2 + [0 1 0] X3 + [0]    
                               [0 0 0]      [0 0 1]      [0 0 1]      [0]    
                            >= [0 1 0]      [0 1 0]      [0 1 0]      [0]    
                               [0 1 0] X1 + [0 1 0] X2 + [0 1 0] X3 + [0]    
                               [0 0 0]      [0 0 1]      [0 0 1]      [0]    
                            =  a__if(mark(X1),X2,X3)                         
        
         mark(minus(X1,X2)) =  [0]                                           
                               [0]                                           
                               [0]                                           
                            >= [0]                                           
                               [0]                                           
                               [0]                                           
                            =  a__minus(X1,X2)                               
        
                 mark(s(X)) =  [0 1 0]     [0]                               
                               [0 1 0] X + [0]                               
                               [0 0 0]     [1]                               
                            >= [0 1 0]     [0]                               
                               [0 1 0] X + [0]                               
                               [0 0 0]     [1]                               
                            =  s(mark(X))                                    
        
               mark(true()) =  [0]                                           
                               [0]                                           
                               [0]                                           
                            >= [0]                                           
                               [0]                                           
                               [0]                                           
                            =  true()                                        
        
* Step 10: NaturalMI WORST_CASE(?,O(n^3))
    + Considered Problem:
        - Strict TRS:
            a__geq(X1,X2) -> geq(X1,X2)
            a__if(X1,X2,X3) -> if(X1,X2,X3)
            a__if(false(),X,Y) -> mark(Y)
            a__if(true(),X,Y) -> mark(X)
            a__minus(X1,X2) -> minus(X1,X2)
            mark(0()) -> 0()
            mark(div(X1,X2)) -> a__div(mark(X1),X2)
            mark(minus(X1,X2)) -> a__minus(X1,X2)
            mark(s(X)) -> s(mark(X))
        - Weak TRS:
            a__div(X1,X2) -> div(X1,X2)
            a__div(0(),s(Y)) -> 0()
            a__div(s(X),s(Y)) -> a__if(a__geq(X,Y),s(div(minus(X,Y),s(Y))),0())
            a__geq(X,0()) -> true()
            a__geq(0(),s(Y)) -> false()
            a__geq(s(X),s(Y)) -> a__geq(X,Y)
            a__minus(0(),Y) -> 0()
            a__minus(s(X),s(Y)) -> a__minus(X,Y)
            mark(false()) -> false()
            mark(geq(X1,X2)) -> a__geq(X1,X2)
            mark(if(X1,X2,X3)) -> a__if(mark(X1),X2,X3)
            mark(true()) -> true()
        - Signature:
            {a__div/2,a__geq/2,a__if/3,a__minus/2,mark/1} / {0/0,div/2,false/0,geq/2,if/3,minus/2,s/1,true/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {a__div,a__geq,a__if,a__minus,mark} and constructors {0
            ,div,false,geq,if,minus,s,true}
    + Applied Processor:
        NaturalMI {miDimension = 3, miDegree = 3, 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(a__div) = {1},
          uargs(a__if) = {1},
          uargs(s) = {1}
        
        Following symbols are considered usable:
          {a__div,a__geq,a__if,a__minus,mark}
        TcT has computed the following interpretation:
                 p(0) = [0]                                       
                        [0]                                       
                        [0]                                       
            p(a__div) = [1 1 0]      [0 0 0]      [1]             
                        [0 1 0] x1 + [0 1 0] x2 + [1]             
                        [0 0 1]      [0 0 0]      [1]             
            p(a__geq) = [1]                                       
                        [0]                                       
                        [0]                                       
             p(a__if) = [1 0 0]      [1 0 0]      [1 0 0]      [0]
                        [0 0 0] x1 + [0 1 1] x2 + [0 1 0] x3 + [0]
                        [0 0 0]      [0 0 1]      [0 0 1]      [1]
          p(a__minus) = [0]                                       
                        [0]                                       
                        [1]                                       
               p(div) = [1 1 0]      [0 0 0]      [1]             
                        [0 1 0] x1 + [0 1 0] x2 + [1]             
                        [0 0 1]      [0 0 0]      [1]             
             p(false) = [0]                                       
                        [0]                                       
                        [0]                                       
               p(geq) = [1]                                       
                        [0]                                       
                        [0]                                       
                p(if) = [1 0 0]      [1 0 0]      [1 0 0]      [0]
                        [0 0 0] x1 + [0 1 1] x2 + [0 1 0] x3 + [0]
                        [0 0 0]      [0 0 1]      [0 0 1]      [1]
              p(mark) = [1 0 0]      [0]                          
                        [0 1 0] x1 + [0]                          
                        [0 0 1]      [0]                          
             p(minus) = [0]                                       
                        [0]                                       
                        [1]                                       
                 p(s) = [1 0 0]      [0]                          
                        [0 0 1] x1 + [1]                          
                        [0 0 0]      [0]                          
              p(true) = [1]                                       
                        [0]                                       
                        [0]                                       
        
        Following rules are strictly oriented:
        a__if(true(),X,Y) = [1 0 0]     [1 0 0]     [1]
                            [0 1 1] X + [0 1 0] Y + [0]
                            [0 0 1]     [0 0 1]     [1]
                          > [1 0 0]     [0]            
                            [0 1 0] X + [0]            
                            [0 0 1]     [0]            
                          = mark(X)                    
        
        
        Following rules are (at-least) weakly oriented:
              a__div(X1,X2) =  [1 1 0]      [0 0 0]      [1]                 
                               [0 1 0] X1 + [0 1 0] X2 + [1]                 
                               [0 0 1]      [0 0 0]      [1]                 
                            >= [1 1 0]      [0 0 0]      [1]                 
                               [0 1 0] X1 + [0 1 0] X2 + [1]                 
                               [0 0 1]      [0 0 0]      [1]                 
                            =  div(X1,X2)                                    
        
           a__div(0(),s(Y)) =  [0 0 0]     [1]                               
                               [0 0 1] Y + [2]                               
                               [0 0 0]     [1]                               
                            >= [0]                                           
                               [0]                                           
                               [0]                                           
                            =  0()                                           
        
          a__div(s(X),s(Y)) =  [1 0 1]     [0 0 0]     [2]                   
                               [0 0 1] X + [0 0 1] Y + [3]                   
                               [0 0 0]     [0 0 0]     [1]                   
                            >= [2]                                           
                               [3]                                           
                               [1]                                           
                            =  a__if(a__geq(X,Y),s(div(minus(X,Y),s(Y))),0())
        
              a__geq(X,0()) =  [1]                                           
                               [0]                                           
                               [0]                                           
                            >= [1]                                           
                               [0]                                           
                               [0]                                           
                            =  true()                                        
        
              a__geq(X1,X2) =  [1]                                           
                               [0]                                           
                               [0]                                           
                            >= [1]                                           
                               [0]                                           
                               [0]                                           
                            =  geq(X1,X2)                                    
        
           a__geq(0(),s(Y)) =  [1]                                           
                               [0]                                           
                               [0]                                           
                            >= [0]                                           
                               [0]                                           
                               [0]                                           
                            =  false()                                       
        
          a__geq(s(X),s(Y)) =  [1]                                           
                               [0]                                           
                               [0]                                           
                            >= [1]                                           
                               [0]                                           
                               [0]                                           
                            =  a__geq(X,Y)                                   
        
            a__if(X1,X2,X3) =  [1 0 0]      [1 0 0]      [1 0 0]      [0]    
                               [0 0 0] X1 + [0 1 1] X2 + [0 1 0] X3 + [0]    
                               [0 0 0]      [0 0 1]      [0 0 1]      [1]    
                            >= [1 0 0]      [1 0 0]      [1 0 0]      [0]    
                               [0 0 0] X1 + [0 1 1] X2 + [0 1 0] X3 + [0]    
                               [0 0 0]      [0 0 1]      [0 0 1]      [1]    
                            =  if(X1,X2,X3)                                  
        
         a__if(false(),X,Y) =  [1 0 0]     [1 0 0]     [0]                   
                               [0 1 1] X + [0 1 0] Y + [0]                   
                               [0 0 1]     [0 0 1]     [1]                   
                            >= [1 0 0]     [0]                               
                               [0 1 0] Y + [0]                               
                               [0 0 1]     [0]                               
                            =  mark(Y)                                       
        
            a__minus(X1,X2) =  [0]                                           
                               [0]                                           
                               [1]                                           
                            >= [0]                                           
                               [0]                                           
                               [1]                                           
                            =  minus(X1,X2)                                  
        
            a__minus(0(),Y) =  [0]                                           
                               [0]                                           
                               [1]                                           
                            >= [0]                                           
                               [0]                                           
                               [0]                                           
                            =  0()                                           
        
        a__minus(s(X),s(Y)) =  [0]                                           
                               [0]                                           
                               [1]                                           
                            >= [0]                                           
                               [0]                                           
                               [1]                                           
                            =  a__minus(X,Y)                                 
        
                  mark(0()) =  [0]                                           
                               [0]                                           
                               [0]                                           
                            >= [0]                                           
                               [0]                                           
                               [0]                                           
                            =  0()                                           
        
           mark(div(X1,X2)) =  [1 1 0]      [0 0 0]      [1]                 
                               [0 1 0] X1 + [0 1 0] X2 + [1]                 
                               [0 0 1]      [0 0 0]      [1]                 
                            >= [1 1 0]      [0 0 0]      [1]                 
                               [0 1 0] X1 + [0 1 0] X2 + [1]                 
                               [0 0 1]      [0 0 0]      [1]                 
                            =  a__div(mark(X1),X2)                           
        
              mark(false()) =  [0]                                           
                               [0]                                           
                               [0]                                           
                            >= [0]                                           
                               [0]                                           
                               [0]                                           
                            =  false()                                       
        
           mark(geq(X1,X2)) =  [1]                                           
                               [0]                                           
                               [0]                                           
                            >= [1]                                           
                               [0]                                           
                               [0]                                           
                            =  a__geq(X1,X2)                                 
        
         mark(if(X1,X2,X3)) =  [1 0 0]      [1 0 0]      [1 0 0]      [0]    
                               [0 0 0] X1 + [0 1 1] X2 + [0 1 0] X3 + [0]    
                               [0 0 0]      [0 0 1]      [0 0 1]      [1]    
                            >= [1 0 0]      [1 0 0]      [1 0 0]      [0]    
                               [0 0 0] X1 + [0 1 1] X2 + [0 1 0] X3 + [0]    
                               [0 0 0]      [0 0 1]      [0 0 1]      [1]    
                            =  a__if(mark(X1),X2,X3)                         
        
         mark(minus(X1,X2)) =  [0]                                           
                               [0]                                           
                               [1]                                           
                            >= [0]                                           
                               [0]                                           
                               [1]                                           
                            =  a__minus(X1,X2)                               
        
                 mark(s(X)) =  [1 0 0]     [0]                               
                               [0 0 1] X + [1]                               
                               [0 0 0]     [0]                               
                            >= [1 0 0]     [0]                               
                               [0 0 1] X + [1]                               
                               [0 0 0]     [0]                               
                            =  s(mark(X))                                    
        
               mark(true()) =  [1]                                           
                               [0]                                           
                               [0]                                           
                            >= [1]                                           
                               [0]                                           
                               [0]                                           
                            =  true()                                        
        
* Step 11: NaturalMI WORST_CASE(?,O(n^3))
    + Considered Problem:
        - Strict TRS:
            a__geq(X1,X2) -> geq(X1,X2)
            a__if(X1,X2,X3) -> if(X1,X2,X3)
            a__if(false(),X,Y) -> mark(Y)
            a__minus(X1,X2) -> minus(X1,X2)
            mark(0()) -> 0()
            mark(div(X1,X2)) -> a__div(mark(X1),X2)
            mark(minus(X1,X2)) -> a__minus(X1,X2)
            mark(s(X)) -> s(mark(X))
        - Weak TRS:
            a__div(X1,X2) -> div(X1,X2)
            a__div(0(),s(Y)) -> 0()
            a__div(s(X),s(Y)) -> a__if(a__geq(X,Y),s(div(minus(X,Y),s(Y))),0())
            a__geq(X,0()) -> true()
            a__geq(0(),s(Y)) -> false()
            a__geq(s(X),s(Y)) -> a__geq(X,Y)
            a__if(true(),X,Y) -> mark(X)
            a__minus(0(),Y) -> 0()
            a__minus(s(X),s(Y)) -> a__minus(X,Y)
            mark(false()) -> false()
            mark(geq(X1,X2)) -> a__geq(X1,X2)
            mark(if(X1,X2,X3)) -> a__if(mark(X1),X2,X3)
            mark(true()) -> true()
        - Signature:
            {a__div/2,a__geq/2,a__if/3,a__minus/2,mark/1} / {0/0,div/2,false/0,geq/2,if/3,minus/2,s/1,true/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {a__div,a__geq,a__if,a__minus,mark} and constructors {0
            ,div,false,geq,if,minus,s,true}
    + Applied Processor:
        NaturalMI {miDimension = 3, miDegree = 3, 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(a__div) = {1},
          uargs(a__if) = {1},
          uargs(s) = {1}
        
        Following symbols are considered usable:
          {a__div,a__geq,a__if,a__minus,mark}
        TcT has computed the following interpretation:
                 p(0) = [0]                                       
                        [1]                                       
                        [0]                                       
            p(a__div) = [1 0 1]      [1]                          
                        [0 1 1] x1 + [0]                          
                        [0 0 0]      [1]                          
            p(a__geq) = [0]                                       
                        [0]                                       
                        [0]                                       
             p(a__if) = [1 0 0]      [1 0 0]      [1 0 0]      [1]
                        [0 0 0] x1 + [0 1 0] x2 + [0 1 1] x3 + [0]
                        [0 0 0]      [0 0 1]      [0 0 1]      [0]
          p(a__minus) = [1 0 0]      [0]                          
                        [0 0 0] x1 + [1]                          
                        [0 0 0]      [0]                          
               p(div) = [1 0 1]      [1]                          
                        [0 1 1] x1 + [0]                          
                        [0 0 0]      [1]                          
             p(false) = [0]                                       
                        [0]                                       
                        [0]                                       
               p(geq) = [0]                                       
                        [0]                                       
                        [0]                                       
                p(if) = [1 0 0]      [1 0 0]      [1 0 0]      [1]
                        [0 0 0] x1 + [0 1 0] x2 + [0 1 1] x3 + [0]
                        [0 0 0]      [0 0 1]      [0 0 1]      [0]
              p(mark) = [1 0 0]      [0]                          
                        [0 1 0] x1 + [0]                          
                        [0 0 1]      [0]                          
             p(minus) = [1 0 0]      [0]                          
                        [0 0 0] x1 + [1]                          
                        [0 0 0]      [0]                          
                 p(s) = [1 0 0]      [0]                          
                        [0 0 0] x1 + [0]                          
                        [0 0 0]      [1]                          
              p(true) = [0]                                       
                        [0]                                       
                        [0]                                       
        
        Following rules are strictly oriented:
        a__if(false(),X,Y) = [1 0 0]     [1 0 0]     [1]
                             [0 1 0] X + [0 1 1] Y + [0]
                             [0 0 1]     [0 0 1]     [0]
                           > [1 0 0]     [0]            
                             [0 1 0] Y + [0]            
                             [0 0 1]     [0]            
                           = mark(Y)                    
        
        
        Following rules are (at-least) weakly oriented:
              a__div(X1,X2) =  [1 0 1]      [1]                              
                               [0 1 1] X1 + [0]                              
                               [0 0 0]      [1]                              
                            >= [1 0 1]      [1]                              
                               [0 1 1] X1 + [0]                              
                               [0 0 0]      [1]                              
                            =  div(X1,X2)                                    
        
           a__div(0(),s(Y)) =  [1]                                           
                               [1]                                           
                               [1]                                           
                            >= [0]                                           
                               [1]                                           
                               [0]                                           
                            =  0()                                           
        
          a__div(s(X),s(Y)) =  [1 0 0]     [2]                               
                               [0 0 0] X + [1]                               
                               [0 0 0]     [1]                               
                            >= [1 0 0]     [2]                               
                               [0 0 0] X + [1]                               
                               [0 0 0]     [1]                               
                            =  a__if(a__geq(X,Y),s(div(minus(X,Y),s(Y))),0())
        
              a__geq(X,0()) =  [0]                                           
                               [0]                                           
                               [0]                                           
                            >= [0]                                           
                               [0]                                           
                               [0]                                           
                            =  true()                                        
        
              a__geq(X1,X2) =  [0]                                           
                               [0]                                           
                               [0]                                           
                            >= [0]                                           
                               [0]                                           
                               [0]                                           
                            =  geq(X1,X2)                                    
        
           a__geq(0(),s(Y)) =  [0]                                           
                               [0]                                           
                               [0]                                           
                            >= [0]                                           
                               [0]                                           
                               [0]                                           
                            =  false()                                       
        
          a__geq(s(X),s(Y)) =  [0]                                           
                               [0]                                           
                               [0]                                           
                            >= [0]                                           
                               [0]                                           
                               [0]                                           
                            =  a__geq(X,Y)                                   
        
            a__if(X1,X2,X3) =  [1 0 0]      [1 0 0]      [1 0 0]      [1]    
                               [0 0 0] X1 + [0 1 0] X2 + [0 1 1] X3 + [0]    
                               [0 0 0]      [0 0 1]      [0 0 1]      [0]    
                            >= [1 0 0]      [1 0 0]      [1 0 0]      [1]    
                               [0 0 0] X1 + [0 1 0] X2 + [0 1 1] X3 + [0]    
                               [0 0 0]      [0 0 1]      [0 0 1]      [0]    
                            =  if(X1,X2,X3)                                  
        
          a__if(true(),X,Y) =  [1 0 0]     [1 0 0]     [1]                   
                               [0 1 0] X + [0 1 1] Y + [0]                   
                               [0 0 1]     [0 0 1]     [0]                   
                            >= [1 0 0]     [0]                               
                               [0 1 0] X + [0]                               
                               [0 0 1]     [0]                               
                            =  mark(X)                                       
        
            a__minus(X1,X2) =  [1 0 0]      [0]                              
                               [0 0 0] X1 + [1]                              
                               [0 0 0]      [0]                              
                            >= [1 0 0]      [0]                              
                               [0 0 0] X1 + [1]                              
                               [0 0 0]      [0]                              
                            =  minus(X1,X2)                                  
        
            a__minus(0(),Y) =  [0]                                           
                               [1]                                           
                               [0]                                           
                            >= [0]                                           
                               [1]                                           
                               [0]                                           
                            =  0()                                           
        
        a__minus(s(X),s(Y)) =  [1 0 0]     [0]                               
                               [0 0 0] X + [1]                               
                               [0 0 0]     [0]                               
                            >= [1 0 0]     [0]                               
                               [0 0 0] X + [1]                               
                               [0 0 0]     [0]                               
                            =  a__minus(X,Y)                                 
        
                  mark(0()) =  [0]                                           
                               [1]                                           
                               [0]                                           
                            >= [0]                                           
                               [1]                                           
                               [0]                                           
                            =  0()                                           
        
           mark(div(X1,X2)) =  [1 0 1]      [1]                              
                               [0 1 1] X1 + [0]                              
                               [0 0 0]      [1]                              
                            >= [1 0 1]      [1]                              
                               [0 1 1] X1 + [0]                              
                               [0 0 0]      [1]                              
                            =  a__div(mark(X1),X2)                           
        
              mark(false()) =  [0]                                           
                               [0]                                           
                               [0]                                           
                            >= [0]                                           
                               [0]                                           
                               [0]                                           
                            =  false()                                       
        
           mark(geq(X1,X2)) =  [0]                                           
                               [0]                                           
                               [0]                                           
                            >= [0]                                           
                               [0]                                           
                               [0]                                           
                            =  a__geq(X1,X2)                                 
        
         mark(if(X1,X2,X3)) =  [1 0 0]      [1 0 0]      [1 0 0]      [1]    
                               [0 0 0] X1 + [0 1 0] X2 + [0 1 1] X3 + [0]    
                               [0 0 0]      [0 0 1]      [0 0 1]      [0]    
                            >= [1 0 0]      [1 0 0]      [1 0 0]      [1]    
                               [0 0 0] X1 + [0 1 0] X2 + [0 1 1] X3 + [0]    
                               [0 0 0]      [0 0 1]      [0 0 1]      [0]    
                            =  a__if(mark(X1),X2,X3)                         
        
         mark(minus(X1,X2)) =  [1 0 0]      [0]                              
                               [0 0 0] X1 + [1]                              
                               [0 0 0]      [0]                              
                            >= [1 0 0]      [0]                              
                               [0 0 0] X1 + [1]                              
                               [0 0 0]      [0]                              
                            =  a__minus(X1,X2)                               
        
                 mark(s(X)) =  [1 0 0]     [0]                               
                               [0 0 0] X + [0]                               
                               [0 0 0]     [1]                               
                            >= [1 0 0]     [0]                               
                               [0 0 0] X + [0]                               
                               [0 0 0]     [1]                               
                            =  s(mark(X))                                    
        
               mark(true()) =  [0]                                           
                               [0]                                           
                               [0]                                           
                            >= [0]                                           
                               [0]                                           
                               [0]                                           
                            =  true()                                        
        
* Step 12: NaturalMI WORST_CASE(?,O(n^3))
    + Considered Problem:
        - Strict TRS:
            a__geq(X1,X2) -> geq(X1,X2)
            a__if(X1,X2,X3) -> if(X1,X2,X3)
            a__minus(X1,X2) -> minus(X1,X2)
            mark(0()) -> 0()
            mark(div(X1,X2)) -> a__div(mark(X1),X2)
            mark(minus(X1,X2)) -> a__minus(X1,X2)
            mark(s(X)) -> s(mark(X))
        - Weak TRS:
            a__div(X1,X2) -> div(X1,X2)
            a__div(0(),s(Y)) -> 0()
            a__div(s(X),s(Y)) -> a__if(a__geq(X,Y),s(div(minus(X,Y),s(Y))),0())
            a__geq(X,0()) -> true()
            a__geq(0(),s(Y)) -> false()
            a__geq(s(X),s(Y)) -> a__geq(X,Y)
            a__if(false(),X,Y) -> mark(Y)
            a__if(true(),X,Y) -> mark(X)
            a__minus(0(),Y) -> 0()
            a__minus(s(X),s(Y)) -> a__minus(X,Y)
            mark(false()) -> false()
            mark(geq(X1,X2)) -> a__geq(X1,X2)
            mark(if(X1,X2,X3)) -> a__if(mark(X1),X2,X3)
            mark(true()) -> true()
        - Signature:
            {a__div/2,a__geq/2,a__if/3,a__minus/2,mark/1} / {0/0,div/2,false/0,geq/2,if/3,minus/2,s/1,true/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {a__div,a__geq,a__if,a__minus,mark} and constructors {0
            ,div,false,geq,if,minus,s,true}
    + Applied Processor:
        NaturalMI {miDimension = 3, miDegree = 3, 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(a__div) = {1},
          uargs(a__if) = {1},
          uargs(s) = {1}
        
        Following symbols are considered usable:
          {a__div,a__geq,a__if,a__minus,mark}
        TcT has computed the following interpretation:
                 p(0) = [0]                                       
                        [0]                                       
                        [0]                                       
            p(a__div) = [1 0 1]      [0 1 0]      [0]             
                        [0 1 1] x1 + [0 1 0] x2 + [1]             
                        [0 0 0]      [0 0 1]      [0]             
            p(a__geq) = [0 0 0]      [0]                          
                        [0 1 0] x1 + [0]                          
                        [0 0 0]      [0]                          
             p(a__if) = [1 0 0]      [0 1 0]      [0 1 0]      [0]
                        [0 1 0] x1 + [0 1 0] x2 + [0 1 1] x3 + [0]
                        [0 0 0]      [0 0 1]      [0 0 1]      [0]
          p(a__minus) = [0]                                       
                        [0]                                       
                        [0]                                       
               p(div) = [0 0 0]      [0 1 0]      [0]             
                        [0 1 1] x1 + [0 1 0] x2 + [1]             
                        [0 0 0]      [0 0 1]      [0]             
             p(false) = [0]                                       
                        [0]                                       
                        [0]                                       
               p(geq) = [0 0 0]      [0]                          
                        [0 1 0] x1 + [0]                          
                        [0 0 0]      [0]                          
                p(if) = [0 0 0]      [0 1 0]      [0 1 0]      [0]
                        [0 1 0] x1 + [0 1 0] x2 + [0 1 1] x3 + [0]
                        [0 0 0]      [0 0 1]      [0 0 1]      [0]
              p(mark) = [0 1 0]      [0]                          
                        [0 1 0] x1 + [0]                          
                        [0 0 1]      [0]                          
             p(minus) = [0]                                       
                        [0]                                       
                        [0]                                       
                 p(s) = [1 0 0]      [0]                          
                        [0 1 0] x1 + [0]                          
                        [0 0 0]      [1]                          
              p(true) = [0]                                       
                        [0]                                       
                        [0]                                       
        
        Following rules are strictly oriented:
        mark(div(X1,X2)) = [0 1 1]      [0 1 0]      [1]
                           [0 1 1] X1 + [0 1 0] X2 + [1]
                           [0 0 0]      [0 0 1]      [0]
                         > [0 1 1]      [0 1 0]      [0]
                           [0 1 1] X1 + [0 1 0] X2 + [1]
                           [0 0 0]      [0 0 1]      [0]
                         = a__div(mark(X1),X2)          
        
        
        Following rules are (at-least) weakly oriented:
              a__div(X1,X2) =  [1 0 1]      [0 1 0]      [0]                 
                               [0 1 1] X1 + [0 1 0] X2 + [1]                 
                               [0 0 0]      [0 0 1]      [0]                 
                            >= [0 0 0]      [0 1 0]      [0]                 
                               [0 1 1] X1 + [0 1 0] X2 + [1]                 
                               [0 0 0]      [0 0 1]      [0]                 
                            =  div(X1,X2)                                    
        
           a__div(0(),s(Y)) =  [0 1 0]     [0]                               
                               [0 1 0] Y + [1]                               
                               [0 0 0]     [1]                               
                            >= [0]                                           
                               [0]                                           
                               [0]                                           
                            =  0()                                           
        
          a__div(s(X),s(Y)) =  [1 0 0]     [0 1 0]     [1]                   
                               [0 1 0] X + [0 1 0] Y + [2]                   
                               [0 0 0]     [0 0 0]     [1]                   
                            >= [0 0 0]     [0 1 0]     [1]                   
                               [0 1 0] X + [0 1 0] Y + [1]                   
                               [0 0 0]     [0 0 0]     [1]                   
                            =  a__if(a__geq(X,Y),s(div(minus(X,Y),s(Y))),0())
        
              a__geq(X,0()) =  [0 0 0]     [0]                               
                               [0 1 0] X + [0]                               
                               [0 0 0]     [0]                               
                            >= [0]                                           
                               [0]                                           
                               [0]                                           
                            =  true()                                        
        
              a__geq(X1,X2) =  [0 0 0]      [0]                              
                               [0 1 0] X1 + [0]                              
                               [0 0 0]      [0]                              
                            >= [0 0 0]      [0]                              
                               [0 1 0] X1 + [0]                              
                               [0 0 0]      [0]                              
                            =  geq(X1,X2)                                    
        
           a__geq(0(),s(Y)) =  [0]                                           
                               [0]                                           
                               [0]                                           
                            >= [0]                                           
                               [0]                                           
                               [0]                                           
                            =  false()                                       
        
          a__geq(s(X),s(Y)) =  [0 0 0]     [0]                               
                               [0 1 0] X + [0]                               
                               [0 0 0]     [0]                               
                            >= [0 0 0]     [0]                               
                               [0 1 0] X + [0]                               
                               [0 0 0]     [0]                               
                            =  a__geq(X,Y)                                   
        
            a__if(X1,X2,X3) =  [1 0 0]      [0 1 0]      [0 1 0]      [0]    
                               [0 1 0] X1 + [0 1 0] X2 + [0 1 1] X3 + [0]    
                               [0 0 0]      [0 0 1]      [0 0 1]      [0]    
                            >= [0 0 0]      [0 1 0]      [0 1 0]      [0]    
                               [0 1 0] X1 + [0 1 0] X2 + [0 1 1] X3 + [0]    
                               [0 0 0]      [0 0 1]      [0 0 1]      [0]    
                            =  if(X1,X2,X3)                                  
        
         a__if(false(),X,Y) =  [0 1 0]     [0 1 0]     [0]                   
                               [0 1 0] X + [0 1 1] Y + [0]                   
                               [0 0 1]     [0 0 1]     [0]                   
                            >= [0 1 0]     [0]                               
                               [0 1 0] Y + [0]                               
                               [0 0 1]     [0]                               
                            =  mark(Y)                                       
        
          a__if(true(),X,Y) =  [0 1 0]     [0 1 0]     [0]                   
                               [0 1 0] X + [0 1 1] Y + [0]                   
                               [0 0 1]     [0 0 1]     [0]                   
                            >= [0 1 0]     [0]                               
                               [0 1 0] X + [0]                               
                               [0 0 1]     [0]                               
                            =  mark(X)                                       
        
            a__minus(X1,X2) =  [0]                                           
                               [0]                                           
                               [0]                                           
                            >= [0]                                           
                               [0]                                           
                               [0]                                           
                            =  minus(X1,X2)                                  
        
            a__minus(0(),Y) =  [0]                                           
                               [0]                                           
                               [0]                                           
                            >= [0]                                           
                               [0]                                           
                               [0]                                           
                            =  0()                                           
        
        a__minus(s(X),s(Y)) =  [0]                                           
                               [0]                                           
                               [0]                                           
                            >= [0]                                           
                               [0]                                           
                               [0]                                           
                            =  a__minus(X,Y)                                 
        
                  mark(0()) =  [0]                                           
                               [0]                                           
                               [0]                                           
                            >= [0]                                           
                               [0]                                           
                               [0]                                           
                            =  0()                                           
        
              mark(false()) =  [0]                                           
                               [0]                                           
                               [0]                                           
                            >= [0]                                           
                               [0]                                           
                               [0]                                           
                            =  false()                                       
        
           mark(geq(X1,X2)) =  [0 1 0]      [0]                              
                               [0 1 0] X1 + [0]                              
                               [0 0 0]      [0]                              
                            >= [0 0 0]      [0]                              
                               [0 1 0] X1 + [0]                              
                               [0 0 0]      [0]                              
                            =  a__geq(X1,X2)                                 
        
         mark(if(X1,X2,X3)) =  [0 1 0]      [0 1 0]      [0 1 1]      [0]    
                               [0 1 0] X1 + [0 1 0] X2 + [0 1 1] X3 + [0]    
                               [0 0 0]      [0 0 1]      [0 0 1]      [0]    
                            >= [0 1 0]      [0 1 0]      [0 1 0]      [0]    
                               [0 1 0] X1 + [0 1 0] X2 + [0 1 1] X3 + [0]    
                               [0 0 0]      [0 0 1]      [0 0 1]      [0]    
                            =  a__if(mark(X1),X2,X3)                         
        
         mark(minus(X1,X2)) =  [0]                                           
                               [0]                                           
                               [0]                                           
                            >= [0]                                           
                               [0]                                           
                               [0]                                           
                            =  a__minus(X1,X2)                               
        
                 mark(s(X)) =  [0 1 0]     [0]                               
                               [0 1 0] X + [0]                               
                               [0 0 0]     [1]                               
                            >= [0 1 0]     [0]                               
                               [0 1 0] X + [0]                               
                               [0 0 0]     [1]                               
                            =  s(mark(X))                                    
        
               mark(true()) =  [0]                                           
                               [0]                                           
                               [0]                                           
                            >= [0]                                           
                               [0]                                           
                               [0]                                           
                            =  true()                                        
        
* Step 13: NaturalMI WORST_CASE(?,O(n^3))
    + Considered Problem:
        - Strict TRS:
            a__geq(X1,X2) -> geq(X1,X2)
            a__if(X1,X2,X3) -> if(X1,X2,X3)
            a__minus(X1,X2) -> minus(X1,X2)
            mark(0()) -> 0()
            mark(minus(X1,X2)) -> a__minus(X1,X2)
            mark(s(X)) -> s(mark(X))
        - Weak TRS:
            a__div(X1,X2) -> div(X1,X2)
            a__div(0(),s(Y)) -> 0()
            a__div(s(X),s(Y)) -> a__if(a__geq(X,Y),s(div(minus(X,Y),s(Y))),0())
            a__geq(X,0()) -> true()
            a__geq(0(),s(Y)) -> false()
            a__geq(s(X),s(Y)) -> a__geq(X,Y)
            a__if(false(),X,Y) -> mark(Y)
            a__if(true(),X,Y) -> mark(X)
            a__minus(0(),Y) -> 0()
            a__minus(s(X),s(Y)) -> a__minus(X,Y)
            mark(div(X1,X2)) -> a__div(mark(X1),X2)
            mark(false()) -> false()
            mark(geq(X1,X2)) -> a__geq(X1,X2)
            mark(if(X1,X2,X3)) -> a__if(mark(X1),X2,X3)
            mark(true()) -> true()
        - Signature:
            {a__div/2,a__geq/2,a__if/3,a__minus/2,mark/1} / {0/0,div/2,false/0,geq/2,if/3,minus/2,s/1,true/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {a__div,a__geq,a__if,a__minus,mark} and constructors {0
            ,div,false,geq,if,minus,s,true}
    + Applied Processor:
        NaturalMI {miDimension = 3, miDegree = 3, 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(a__div) = {1},
          uargs(a__if) = {1},
          uargs(s) = {1}
        
        Following symbols are considered usable:
          {a__div,a__geq,a__if,a__minus,mark}
        TcT has computed the following interpretation:
                 p(0) = [0]                                       
                        [0]                                       
                        [0]                                       
            p(a__div) = [1 0 1]      [1 1 0]      [1]             
                        [1 0 1] x1 + [1 1 0] x2 + [0]             
                        [0 0 1]      [0 0 0]      [0]             
            p(a__geq) = [0]                                       
                        [0]                                       
                        [0]                                       
             p(a__if) = [1 0 0]      [1 0 0]      [1 0 0]      [1]
                        [0 0 0] x1 + [1 0 0] x2 + [1 0 0] x3 + [0]
                        [0 0 1]      [0 0 1]      [0 0 1]      [0]
          p(a__minus) = [1 0 1]      [0]                          
                        [0 0 0] x1 + [0]                          
                        [0 0 0]      [0]                          
               p(div) = [1 0 1]      [1 1 0]      [1]             
                        [0 0 0] x1 + [0 0 0] x2 + [0]             
                        [0 0 1]      [0 0 0]      [0]             
             p(false) = [0]                                       
                        [0]                                       
                        [0]                                       
               p(geq) = [0]                                       
                        [0]                                       
                        [0]                                       
                p(if) = [1 0 0]      [1 0 0]      [1 0 0]      [1]
                        [0 0 0] x1 + [0 0 0] x2 + [0 0 0] x3 + [0]
                        [0 0 1]      [0 0 1]      [0 0 1]      [0]
              p(mark) = [1 0 0]      [1]                          
                        [1 0 0] x1 + [0]                          
                        [0 0 1]      [0]                          
             p(minus) = [1 0 1]      [0]                          
                        [0 0 0] x1 + [0]                          
                        [0 0 0]      [0]                          
                 p(s) = [1 0 1]      [0]                          
                        [0 0 1] x1 + [0]                          
                        [0 0 0]      [1]                          
              p(true) = [0]                                       
                        [0]                                       
                        [0]                                       
        
        Following rules are strictly oriented:
                 mark(0()) = [1]             
                             [0]             
                             [0]             
                           > [0]             
                             [0]             
                             [0]             
                           = 0()             
        
        mark(minus(X1,X2)) = [1 0 1]      [1]
                             [1 0 1] X1 + [0]
                             [0 0 0]      [0]
                           > [1 0 1]      [0]
                             [0 0 0] X1 + [0]
                             [0 0 0]      [0]
                           = a__minus(X1,X2) 
        
        
        Following rules are (at-least) weakly oriented:
              a__div(X1,X2) =  [1 0 1]      [1 1 0]      [1]                 
                               [1 0 1] X1 + [1 1 0] X2 + [0]                 
                               [0 0 1]      [0 0 0]      [0]                 
                            >= [1 0 1]      [1 1 0]      [1]                 
                               [0 0 0] X1 + [0 0 0] X2 + [0]                 
                               [0 0 1]      [0 0 0]      [0]                 
                            =  div(X1,X2)                                    
        
           a__div(0(),s(Y)) =  [1 0 2]     [1]                               
                               [1 0 2] Y + [0]                               
                               [0 0 0]     [0]                               
                            >= [0]                                           
                               [0]                                           
                               [0]                                           
                            =  0()                                           
        
          a__div(s(X),s(Y)) =  [1 0 1]     [1 0 2]     [2]                   
                               [1 0 1] X + [1 0 2] Y + [1]                   
                               [0 0 0]     [0 0 0]     [1]                   
                            >= [1 0 1]     [1 0 2]     [2]                   
                               [1 0 1] X + [1 0 2] Y + [1]                   
                               [0 0 0]     [0 0 0]     [1]                   
                            =  a__if(a__geq(X,Y),s(div(minus(X,Y),s(Y))),0())
        
              a__geq(X,0()) =  [0]                                           
                               [0]                                           
                               [0]                                           
                            >= [0]                                           
                               [0]                                           
                               [0]                                           
                            =  true()                                        
        
              a__geq(X1,X2) =  [0]                                           
                               [0]                                           
                               [0]                                           
                            >= [0]                                           
                               [0]                                           
                               [0]                                           
                            =  geq(X1,X2)                                    
        
           a__geq(0(),s(Y)) =  [0]                                           
                               [0]                                           
                               [0]                                           
                            >= [0]                                           
                               [0]                                           
                               [0]                                           
                            =  false()                                       
        
          a__geq(s(X),s(Y)) =  [0]                                           
                               [0]                                           
                               [0]                                           
                            >= [0]                                           
                               [0]                                           
                               [0]                                           
                            =  a__geq(X,Y)                                   
        
            a__if(X1,X2,X3) =  [1 0 0]      [1 0 0]      [1 0 0]      [1]    
                               [0 0 0] X1 + [1 0 0] X2 + [1 0 0] X3 + [0]    
                               [0 0 1]      [0 0 1]      [0 0 1]      [0]    
                            >= [1 0 0]      [1 0 0]      [1 0 0]      [1]    
                               [0 0 0] X1 + [0 0 0] X2 + [0 0 0] X3 + [0]    
                               [0 0 1]      [0 0 1]      [0 0 1]      [0]    
                            =  if(X1,X2,X3)                                  
        
         a__if(false(),X,Y) =  [1 0 0]     [1 0 0]     [1]                   
                               [1 0 0] X + [1 0 0] Y + [0]                   
                               [0 0 1]     [0 0 1]     [0]                   
                            >= [1 0 0]     [1]                               
                               [1 0 0] Y + [0]                               
                               [0 0 1]     [0]                               
                            =  mark(Y)                                       
        
          a__if(true(),X,Y) =  [1 0 0]     [1 0 0]     [1]                   
                               [1 0 0] X + [1 0 0] Y + [0]                   
                               [0 0 1]     [0 0 1]     [0]                   
                            >= [1 0 0]     [1]                               
                               [1 0 0] X + [0]                               
                               [0 0 1]     [0]                               
                            =  mark(X)                                       
        
            a__minus(X1,X2) =  [1 0 1]      [0]                              
                               [0 0 0] X1 + [0]                              
                               [0 0 0]      [0]                              
                            >= [1 0 1]      [0]                              
                               [0 0 0] X1 + [0]                              
                               [0 0 0]      [0]                              
                            =  minus(X1,X2)                                  
        
            a__minus(0(),Y) =  [0]                                           
                               [0]                                           
                               [0]                                           
                            >= [0]                                           
                               [0]                                           
                               [0]                                           
                            =  0()                                           
        
        a__minus(s(X),s(Y)) =  [1 0 1]     [1]                               
                               [0 0 0] X + [0]                               
                               [0 0 0]     [0]                               
                            >= [1 0 1]     [0]                               
                               [0 0 0] X + [0]                               
                               [0 0 0]     [0]                               
                            =  a__minus(X,Y)                                 
        
           mark(div(X1,X2)) =  [1 0 1]      [1 1 0]      [2]                 
                               [1 0 1] X1 + [1 1 0] X2 + [1]                 
                               [0 0 1]      [0 0 0]      [0]                 
                            >= [1 0 1]      [1 1 0]      [2]                 
                               [1 0 1] X1 + [1 1 0] X2 + [1]                 
                               [0 0 1]      [0 0 0]      [0]                 
                            =  a__div(mark(X1),X2)                           
        
              mark(false()) =  [1]                                           
                               [0]                                           
                               [0]                                           
                            >= [0]                                           
                               [0]                                           
                               [0]                                           
                            =  false()                                       
        
           mark(geq(X1,X2)) =  [1]                                           
                               [0]                                           
                               [0]                                           
                            >= [0]                                           
                               [0]                                           
                               [0]                                           
                            =  a__geq(X1,X2)                                 
        
         mark(if(X1,X2,X3)) =  [1 0 0]      [1 0 0]      [1 0 0]      [2]    
                               [1 0 0] X1 + [1 0 0] X2 + [1 0 0] X3 + [1]    
                               [0 0 1]      [0 0 1]      [0 0 1]      [0]    
                            >= [1 0 0]      [1 0 0]      [1 0 0]      [2]    
                               [0 0 0] X1 + [1 0 0] X2 + [1 0 0] X3 + [0]    
                               [0 0 1]      [0 0 1]      [0 0 1]      [0]    
                            =  a__if(mark(X1),X2,X3)                         
        
                 mark(s(X)) =  [1 0 1]     [1]                               
                               [1 0 1] X + [0]                               
                               [0 0 0]     [1]                               
                            >= [1 0 1]     [1]                               
                               [0 0 1] X + [0]                               
                               [0 0 0]     [1]                               
                            =  s(mark(X))                                    
        
               mark(true()) =  [1]                                           
                               [0]                                           
                               [0]                                           
                            >= [0]                                           
                               [0]                                           
                               [0]                                           
                            =  true()                                        
        
* Step 14: NaturalMI WORST_CASE(?,O(n^3))
    + Considered Problem:
        - Strict TRS:
            a__geq(X1,X2) -> geq(X1,X2)
            a__if(X1,X2,X3) -> if(X1,X2,X3)
            a__minus(X1,X2) -> minus(X1,X2)
            mark(s(X)) -> s(mark(X))
        - Weak TRS:
            a__div(X1,X2) -> div(X1,X2)
            a__div(0(),s(Y)) -> 0()
            a__div(s(X),s(Y)) -> a__if(a__geq(X,Y),s(div(minus(X,Y),s(Y))),0())
            a__geq(X,0()) -> true()
            a__geq(0(),s(Y)) -> false()
            a__geq(s(X),s(Y)) -> a__geq(X,Y)
            a__if(false(),X,Y) -> mark(Y)
            a__if(true(),X,Y) -> mark(X)
            a__minus(0(),Y) -> 0()
            a__minus(s(X),s(Y)) -> a__minus(X,Y)
            mark(0()) -> 0()
            mark(div(X1,X2)) -> a__div(mark(X1),X2)
            mark(false()) -> false()
            mark(geq(X1,X2)) -> a__geq(X1,X2)
            mark(if(X1,X2,X3)) -> a__if(mark(X1),X2,X3)
            mark(minus(X1,X2)) -> a__minus(X1,X2)
            mark(true()) -> true()
        - Signature:
            {a__div/2,a__geq/2,a__if/3,a__minus/2,mark/1} / {0/0,div/2,false/0,geq/2,if/3,minus/2,s/1,true/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {a__div,a__geq,a__if,a__minus,mark} and constructors {0
            ,div,false,geq,if,minus,s,true}
    + Applied Processor:
        NaturalMI {miDimension = 3, miDegree = 3, 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(a__div) = {1},
          uargs(a__if) = {1},
          uargs(s) = {1}
        
        Following symbols are considered usable:
          {a__div,a__geq,a__if,a__minus,mark}
        TcT has computed the following interpretation:
                 p(0) = [0]                                       
                        [0]                                       
                        [0]                                       
            p(a__div) = [1 0 1]      [0 0 1]      [1]             
                        [0 1 1] x1 + [0 0 0] x2 + [1]             
                        [0 0 1]      [0 0 1]      [0]             
            p(a__geq) = [0]                                       
                        [0]                                       
                        [0]                                       
             p(a__if) = [1 0 0]      [0 1 1]      [0 1 1]      [0]
                        [0 1 0] x1 + [0 1 0] x2 + [0 1 0] x3 + [0]
                        [0 0 1]      [0 0 1]      [0 0 1]      [1]
          p(a__minus) = [0]                                       
                        [0]                                       
                        [0]                                       
               p(div) = [0 0 0]      [0 0 1]      [0]             
                        [0 1 1] x1 + [0 0 0] x2 + [1]             
                        [0 0 1]      [0 0 1]      [0]             
             p(false) = [0]                                       
                        [0]                                       
                        [0]                                       
               p(geq) = [0]                                       
                        [0]                                       
                        [0]                                       
                p(if) = [0 0 0]      [0 0 0]      [0 0 0]      [0]
                        [0 1 0] x1 + [0 1 0] x2 + [0 1 0] x3 + [0]
                        [0 0 1]      [0 0 1]      [0 0 1]      [1]
              p(mark) = [0 1 1]      [0]                          
                        [0 1 0] x1 + [0]                          
                        [0 0 1]      [0]                          
             p(minus) = [0]                                       
                        [0]                                       
                        [0]                                       
                 p(s) = [1 0 0]      [0]                          
                        [0 1 1] x1 + [0]                          
                        [0 0 0]      [1]                          
              p(true) = [0]                                       
                        [0]                                       
                        [0]                                       
        
        Following rules are strictly oriented:
        mark(s(X)) = [0 1 1]     [1]
                     [0 1 1] X + [0]
                     [0 0 0]     [1]
                   > [0 1 1]     [0]
                     [0 1 1] X + [0]
                     [0 0 0]     [1]
                   = s(mark(X))     
        
        
        Following rules are (at-least) weakly oriented:
              a__div(X1,X2) =  [1 0 1]      [0 0 1]      [1]                 
                               [0 1 1] X1 + [0 0 0] X2 + [1]                 
                               [0 0 1]      [0 0 1]      [0]                 
                            >= [0 0 0]      [0 0 1]      [0]                 
                               [0 1 1] X1 + [0 0 0] X2 + [1]                 
                               [0 0 1]      [0 0 1]      [0]                 
                            =  div(X1,X2)                                    
        
           a__div(0(),s(Y)) =  [2]                                           
                               [1]                                           
                               [1]                                           
                            >= [0]                                           
                               [0]                                           
                               [0]                                           
                            =  0()                                           
        
          a__div(s(X),s(Y)) =  [1 0 0]     [3]                               
                               [0 1 1] X + [2]                               
                               [0 0 0]     [2]                               
                            >= [3]                                           
                               [2]                                           
                               [2]                                           
                            =  a__if(a__geq(X,Y),s(div(minus(X,Y),s(Y))),0())
        
              a__geq(X,0()) =  [0]                                           
                               [0]                                           
                               [0]                                           
                            >= [0]                                           
                               [0]                                           
                               [0]                                           
                            =  true()                                        
        
              a__geq(X1,X2) =  [0]                                           
                               [0]                                           
                               [0]                                           
                            >= [0]                                           
                               [0]                                           
                               [0]                                           
                            =  geq(X1,X2)                                    
        
           a__geq(0(),s(Y)) =  [0]                                           
                               [0]                                           
                               [0]                                           
                            >= [0]                                           
                               [0]                                           
                               [0]                                           
                            =  false()                                       
        
          a__geq(s(X),s(Y)) =  [0]                                           
                               [0]                                           
                               [0]                                           
                            >= [0]                                           
                               [0]                                           
                               [0]                                           
                            =  a__geq(X,Y)                                   
        
            a__if(X1,X2,X3) =  [1 0 0]      [0 1 1]      [0 1 1]      [0]    
                               [0 1 0] X1 + [0 1 0] X2 + [0 1 0] X3 + [0]    
                               [0 0 1]      [0 0 1]      [0 0 1]      [1]    
                            >= [0 0 0]      [0 0 0]      [0 0 0]      [0]    
                               [0 1 0] X1 + [0 1 0] X2 + [0 1 0] X3 + [0]    
                               [0 0 1]      [0 0 1]      [0 0 1]      [1]    
                            =  if(X1,X2,X3)                                  
        
         a__if(false(),X,Y) =  [0 1 1]     [0 1 1]     [0]                   
                               [0 1 0] X + [0 1 0] Y + [0]                   
                               [0 0 1]     [0 0 1]     [1]                   
                            >= [0 1 1]     [0]                               
                               [0 1 0] Y + [0]                               
                               [0 0 1]     [0]                               
                            =  mark(Y)                                       
        
          a__if(true(),X,Y) =  [0 1 1]     [0 1 1]     [0]                   
                               [0 1 0] X + [0 1 0] Y + [0]                   
                               [0 0 1]     [0 0 1]     [1]                   
                            >= [0 1 1]     [0]                               
                               [0 1 0] X + [0]                               
                               [0 0 1]     [0]                               
                            =  mark(X)                                       
        
            a__minus(X1,X2) =  [0]                                           
                               [0]                                           
                               [0]                                           
                            >= [0]                                           
                               [0]                                           
                               [0]                                           
                            =  minus(X1,X2)                                  
        
            a__minus(0(),Y) =  [0]                                           
                               [0]                                           
                               [0]                                           
                            >= [0]                                           
                               [0]                                           
                               [0]                                           
                            =  0()                                           
        
        a__minus(s(X),s(Y)) =  [0]                                           
                               [0]                                           
                               [0]                                           
                            >= [0]                                           
                               [0]                                           
                               [0]                                           
                            =  a__minus(X,Y)                                 
        
                  mark(0()) =  [0]                                           
                               [0]                                           
                               [0]                                           
                            >= [0]                                           
                               [0]                                           
                               [0]                                           
                            =  0()                                           
        
           mark(div(X1,X2)) =  [0 1 2]      [0 0 1]      [1]                 
                               [0 1 1] X1 + [0 0 0] X2 + [1]                 
                               [0 0 1]      [0 0 1]      [0]                 
                            >= [0 1 2]      [0 0 1]      [1]                 
                               [0 1 1] X1 + [0 0 0] X2 + [1]                 
                               [0 0 1]      [0 0 1]      [0]                 
                            =  a__div(mark(X1),X2)                           
        
              mark(false()) =  [0]                                           
                               [0]                                           
                               [0]                                           
                            >= [0]                                           
                               [0]                                           
                               [0]                                           
                            =  false()                                       
        
           mark(geq(X1,X2)) =  [0]                                           
                               [0]                                           
                               [0]                                           
                            >= [0]                                           
                               [0]                                           
                               [0]                                           
                            =  a__geq(X1,X2)                                 
        
         mark(if(X1,X2,X3)) =  [0 1 1]      [0 1 1]      [0 1 1]      [1]    
                               [0 1 0] X1 + [0 1 0] X2 + [0 1 0] X3 + [0]    
                               [0 0 1]      [0 0 1]      [0 0 1]      [1]    
                            >= [0 1 1]      [0 1 1]      [0 1 1]      [0]    
                               [0 1 0] X1 + [0 1 0] X2 + [0 1 0] X3 + [0]    
                               [0 0 1]      [0 0 1]      [0 0 1]      [1]    
                            =  a__if(mark(X1),X2,X3)                         
        
         mark(minus(X1,X2)) =  [0]                                           
                               [0]                                           
                               [0]                                           
                            >= [0]                                           
                               [0]                                           
                               [0]                                           
                            =  a__minus(X1,X2)                               
        
               mark(true()) =  [0]                                           
                               [0]                                           
                               [0]                                           
                            >= [0]                                           
                               [0]                                           
                               [0]                                           
                            =  true()                                        
        
* Step 15: NaturalMI WORST_CASE(?,O(n^3))
    + Considered Problem:
        - Strict TRS:
            a__geq(X1,X2) -> geq(X1,X2)
            a__if(X1,X2,X3) -> if(X1,X2,X3)
            a__minus(X1,X2) -> minus(X1,X2)
        - Weak TRS:
            a__div(X1,X2) -> div(X1,X2)
            a__div(0(),s(Y)) -> 0()
            a__div(s(X),s(Y)) -> a__if(a__geq(X,Y),s(div(minus(X,Y),s(Y))),0())
            a__geq(X,0()) -> true()
            a__geq(0(),s(Y)) -> false()
            a__geq(s(X),s(Y)) -> a__geq(X,Y)
            a__if(false(),X,Y) -> mark(Y)
            a__if(true(),X,Y) -> mark(X)
            a__minus(0(),Y) -> 0()
            a__minus(s(X),s(Y)) -> a__minus(X,Y)
            mark(0()) -> 0()
            mark(div(X1,X2)) -> a__div(mark(X1),X2)
            mark(false()) -> false()
            mark(geq(X1,X2)) -> a__geq(X1,X2)
            mark(if(X1,X2,X3)) -> a__if(mark(X1),X2,X3)
            mark(minus(X1,X2)) -> a__minus(X1,X2)
            mark(s(X)) -> s(mark(X))
            mark(true()) -> true()
        - Signature:
            {a__div/2,a__geq/2,a__if/3,a__minus/2,mark/1} / {0/0,div/2,false/0,geq/2,if/3,minus/2,s/1,true/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {a__div,a__geq,a__if,a__minus,mark} and constructors {0
            ,div,false,geq,if,minus,s,true}
    + Applied Processor:
        NaturalMI {miDimension = 3, miDegree = 3, 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(a__div) = {1},
          uargs(a__if) = {1},
          uargs(s) = {1}
        
        Following symbols are considered usable:
          {a__div,a__geq,a__if,a__minus,mark}
        TcT has computed the following interpretation:
                 p(0) = [0]                                       
                        [0]                                       
                        [0]                                       
            p(a__div) = [1 0 1]      [0]                          
                        [0 1 1] x1 + [0]                          
                        [0 0 1]      [0]                          
            p(a__geq) = [0 0 0]      [0]                          
                        [0 1 0] x1 + [0]                          
                        [0 0 0]      [0]                          
             p(a__if) = [1 0 0]      [0 1 0]      [0 1 0]      [1]
                        [0 1 0] x1 + [0 1 0] x2 + [0 1 0] x3 + [1]
                        [0 0 0]      [0 0 1]      [0 0 1]      [0]
          p(a__minus) = [0]                                       
                        [0]                                       
                        [0]                                       
               p(div) = [0 0 0]      [0]                          
                        [0 1 1] x1 + [0]                          
                        [0 0 1]      [0]                          
             p(false) = [0]                                       
                        [0]                                       
                        [0]                                       
               p(geq) = [0 0 0]      [0]                          
                        [0 1 0] x1 + [0]                          
                        [0 0 0]      [0]                          
                p(if) = [0 0 0]      [0 0 0]      [0 0 0]      [0]
                        [0 1 0] x1 + [0 1 0] x2 + [0 1 0] x3 + [1]
                        [0 0 0]      [0 0 1]      [0 0 1]      [0]
              p(mark) = [0 1 0]      [0]                          
                        [0 1 0] x1 + [0]                          
                        [0 0 1]      [0]                          
             p(minus) = [0]                                       
                        [0]                                       
                        [0]                                       
                 p(s) = [1 0 0]      [0]                          
                        [0 1 0] x1 + [0]                          
                        [0 0 0]      [1]                          
              p(true) = [0]                                       
                        [0]                                       
                        [0]                                       
        
        Following rules are strictly oriented:
        a__if(X1,X2,X3) = [1 0 0]      [0 1 0]      [0 1 0]      [1]
                          [0 1 0] X1 + [0 1 0] X2 + [0 1 0] X3 + [1]
                          [0 0 0]      [0 0 1]      [0 0 1]      [0]
                        > [0 0 0]      [0 0 0]      [0 0 0]      [0]
                          [0 1 0] X1 + [0 1 0] X2 + [0 1 0] X3 + [1]
                          [0 0 0]      [0 0 1]      [0 0 1]      [0]
                        = if(X1,X2,X3)                              
        
        
        Following rules are (at-least) weakly oriented:
              a__div(X1,X2) =  [1 0 1]      [0]                              
                               [0 1 1] X1 + [0]                              
                               [0 0 1]      [0]                              
                            >= [0 0 0]      [0]                              
                               [0 1 1] X1 + [0]                              
                               [0 0 1]      [0]                              
                            =  div(X1,X2)                                    
        
           a__div(0(),s(Y)) =  [0]                                           
                               [0]                                           
                               [0]                                           
                            >= [0]                                           
                               [0]                                           
                               [0]                                           
                            =  0()                                           
        
          a__div(s(X),s(Y)) =  [1 0 0]     [1]                               
                               [0 1 0] X + [1]                               
                               [0 0 0]     [1]                               
                            >= [0 0 0]     [1]                               
                               [0 1 0] X + [1]                               
                               [0 0 0]     [1]                               
                            =  a__if(a__geq(X,Y),s(div(minus(X,Y),s(Y))),0())
        
              a__geq(X,0()) =  [0 0 0]     [0]                               
                               [0 1 0] X + [0]                               
                               [0 0 0]     [0]                               
                            >= [0]                                           
                               [0]                                           
                               [0]                                           
                            =  true()                                        
        
              a__geq(X1,X2) =  [0 0 0]      [0]                              
                               [0 1 0] X1 + [0]                              
                               [0 0 0]      [0]                              
                            >= [0 0 0]      [0]                              
                               [0 1 0] X1 + [0]                              
                               [0 0 0]      [0]                              
                            =  geq(X1,X2)                                    
        
           a__geq(0(),s(Y)) =  [0]                                           
                               [0]                                           
                               [0]                                           
                            >= [0]                                           
                               [0]                                           
                               [0]                                           
                            =  false()                                       
        
          a__geq(s(X),s(Y)) =  [0 0 0]     [0]                               
                               [0 1 0] X + [0]                               
                               [0 0 0]     [0]                               
                            >= [0 0 0]     [0]                               
                               [0 1 0] X + [0]                               
                               [0 0 0]     [0]                               
                            =  a__geq(X,Y)                                   
        
         a__if(false(),X,Y) =  [0 1 0]     [0 1 0]     [1]                   
                               [0 1 0] X + [0 1 0] Y + [1]                   
                               [0 0 1]     [0 0 1]     [0]                   
                            >= [0 1 0]     [0]                               
                               [0 1 0] Y + [0]                               
                               [0 0 1]     [0]                               
                            =  mark(Y)                                       
        
          a__if(true(),X,Y) =  [0 1 0]     [0 1 0]     [1]                   
                               [0 1 0] X + [0 1 0] Y + [1]                   
                               [0 0 1]     [0 0 1]     [0]                   
                            >= [0 1 0]     [0]                               
                               [0 1 0] X + [0]                               
                               [0 0 1]     [0]                               
                            =  mark(X)                                       
        
            a__minus(X1,X2) =  [0]                                           
                               [0]                                           
                               [0]                                           
                            >= [0]                                           
                               [0]                                           
                               [0]                                           
                            =  minus(X1,X2)                                  
        
            a__minus(0(),Y) =  [0]                                           
                               [0]                                           
                               [0]                                           
                            >= [0]                                           
                               [0]                                           
                               [0]                                           
                            =  0()                                           
        
        a__minus(s(X),s(Y)) =  [0]                                           
                               [0]                                           
                               [0]                                           
                            >= [0]                                           
                               [0]                                           
                               [0]                                           
                            =  a__minus(X,Y)                                 
        
                  mark(0()) =  [0]                                           
                               [0]                                           
                               [0]                                           
                            >= [0]                                           
                               [0]                                           
                               [0]                                           
                            =  0()                                           
        
           mark(div(X1,X2)) =  [0 1 1]      [0]                              
                               [0 1 1] X1 + [0]                              
                               [0 0 1]      [0]                              
                            >= [0 1 1]      [0]                              
                               [0 1 1] X1 + [0]                              
                               [0 0 1]      [0]                              
                            =  a__div(mark(X1),X2)                           
        
              mark(false()) =  [0]                                           
                               [0]                                           
                               [0]                                           
                            >= [0]                                           
                               [0]                                           
                               [0]                                           
                            =  false()                                       
        
           mark(geq(X1,X2)) =  [0 1 0]      [0]                              
                               [0 1 0] X1 + [0]                              
                               [0 0 0]      [0]                              
                            >= [0 0 0]      [0]                              
                               [0 1 0] X1 + [0]                              
                               [0 0 0]      [0]                              
                            =  a__geq(X1,X2)                                 
        
         mark(if(X1,X2,X3)) =  [0 1 0]      [0 1 0]      [0 1 0]      [1]    
                               [0 1 0] X1 + [0 1 0] X2 + [0 1 0] X3 + [1]    
                               [0 0 0]      [0 0 1]      [0 0 1]      [0]    
                            >= [0 1 0]      [0 1 0]      [0 1 0]      [1]    
                               [0 1 0] X1 + [0 1 0] X2 + [0 1 0] X3 + [1]    
                               [0 0 0]      [0 0 1]      [0 0 1]      [0]    
                            =  a__if(mark(X1),X2,X3)                         
        
         mark(minus(X1,X2)) =  [0]                                           
                               [0]                                           
                               [0]                                           
                            >= [0]                                           
                               [0]                                           
                               [0]                                           
                            =  a__minus(X1,X2)                               
        
                 mark(s(X)) =  [0 1 0]     [0]                               
                               [0 1 0] X + [0]                               
                               [0 0 0]     [1]                               
                            >= [0 1 0]     [0]                               
                               [0 1 0] X + [0]                               
                               [0 0 0]     [1]                               
                            =  s(mark(X))                                    
        
               mark(true()) =  [0]                                           
                               [0]                                           
                               [0]                                           
                            >= [0]                                           
                               [0]                                           
                               [0]                                           
                            =  true()                                        
        
* Step 16: NaturalMI WORST_CASE(?,O(n^3))
    + Considered Problem:
        - Strict TRS:
            a__geq(X1,X2) -> geq(X1,X2)
            a__minus(X1,X2) -> minus(X1,X2)
        - Weak TRS:
            a__div(X1,X2) -> div(X1,X2)
            a__div(0(),s(Y)) -> 0()
            a__div(s(X),s(Y)) -> a__if(a__geq(X,Y),s(div(minus(X,Y),s(Y))),0())
            a__geq(X,0()) -> true()
            a__geq(0(),s(Y)) -> false()
            a__geq(s(X),s(Y)) -> a__geq(X,Y)
            a__if(X1,X2,X3) -> if(X1,X2,X3)
            a__if(false(),X,Y) -> mark(Y)
            a__if(true(),X,Y) -> mark(X)
            a__minus(0(),Y) -> 0()
            a__minus(s(X),s(Y)) -> a__minus(X,Y)
            mark(0()) -> 0()
            mark(div(X1,X2)) -> a__div(mark(X1),X2)
            mark(false()) -> false()
            mark(geq(X1,X2)) -> a__geq(X1,X2)
            mark(if(X1,X2,X3)) -> a__if(mark(X1),X2,X3)
            mark(minus(X1,X2)) -> a__minus(X1,X2)
            mark(s(X)) -> s(mark(X))
            mark(true()) -> true()
        - Signature:
            {a__div/2,a__geq/2,a__if/3,a__minus/2,mark/1} / {0/0,div/2,false/0,geq/2,if/3,minus/2,s/1,true/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {a__div,a__geq,a__if,a__minus,mark} and constructors {0
            ,div,false,geq,if,minus,s,true}
    + Applied Processor:
        NaturalMI {miDimension = 3, miDegree = 3, 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(a__div) = {1},
          uargs(a__if) = {1},
          uargs(s) = {1}
        
        Following symbols are considered usable:
          {a__div,a__geq,a__if,a__minus,mark}
        TcT has computed the following interpretation:
                 p(0) = [0]                                       
                        [0]                                       
                        [0]                                       
            p(a__div) = [1 0 1]      [0]                          
                        [0 1 1] x1 + [0]                          
                        [0 0 1]      [0]                          
            p(a__geq) = [0 0 0]      [1]                          
                        [0 1 0] x1 + [1]                          
                        [0 0 0]      [0]                          
             p(a__if) = [1 0 0]      [0 1 0]      [0 1 0]      [0]
                        [0 1 1] x1 + [0 1 0] x2 + [0 1 1] x3 + [0]
                        [0 0 0]      [0 0 1]      [0 0 1]      [0]
          p(a__minus) = [0]                                       
                        [0]                                       
                        [0]                                       
               p(div) = [0 0 0]      [0]                          
                        [0 1 1] x1 + [0]                          
                        [0 0 1]      [0]                          
             p(false) = [0]                                       
                        [1]                                       
                        [0]                                       
               p(geq) = [0 0 0]      [0]                          
                        [0 1 0] x1 + [1]                          
                        [0 0 0]      [0]                          
                p(if) = [0 0 0]      [0 0 0]      [0 1 0]      [0]
                        [0 1 1] x1 + [0 1 0] x2 + [0 1 1] x3 + [0]
                        [0 0 0]      [0 0 1]      [0 0 1]      [0]
              p(mark) = [0 1 0]      [0]                          
                        [0 1 0] x1 + [0]                          
                        [0 0 1]      [0]                          
             p(minus) = [0]                                       
                        [0]                                       
                        [0]                                       
                 p(s) = [1 0 0]      [0]                          
                        [0 1 0] x1 + [0]                          
                        [0 0 0]      [1]                          
              p(true) = [0]                                       
                        [0]                                       
                        [0]                                       
        
        Following rules are strictly oriented:
        a__geq(X1,X2) = [0 0 0]      [1]
                        [0 1 0] X1 + [1]
                        [0 0 0]      [0]
                      > [0 0 0]      [0]
                        [0 1 0] X1 + [1]
                        [0 0 0]      [0]
                      = geq(X1,X2)      
        
        
        Following rules are (at-least) weakly oriented:
              a__div(X1,X2) =  [1 0 1]      [0]                              
                               [0 1 1] X1 + [0]                              
                               [0 0 1]      [0]                              
                            >= [0 0 0]      [0]                              
                               [0 1 1] X1 + [0]                              
                               [0 0 1]      [0]                              
                            =  div(X1,X2)                                    
        
           a__div(0(),s(Y)) =  [0]                                           
                               [0]                                           
                               [0]                                           
                            >= [0]                                           
                               [0]                                           
                               [0]                                           
                            =  0()                                           
        
          a__div(s(X),s(Y)) =  [1 0 0]     [1]                               
                               [0 1 0] X + [1]                               
                               [0 0 0]     [1]                               
                            >= [0 0 0]     [1]                               
                               [0 1 0] X + [1]                               
                               [0 0 0]     [1]                               
                            =  a__if(a__geq(X,Y),s(div(minus(X,Y),s(Y))),0())
        
              a__geq(X,0()) =  [0 0 0]     [1]                               
                               [0 1 0] X + [1]                               
                               [0 0 0]     [0]                               
                            >= [0]                                           
                               [0]                                           
                               [0]                                           
                            =  true()                                        
        
           a__geq(0(),s(Y)) =  [1]                                           
                               [1]                                           
                               [0]                                           
                            >= [0]                                           
                               [1]                                           
                               [0]                                           
                            =  false()                                       
        
          a__geq(s(X),s(Y)) =  [0 0 0]     [1]                               
                               [0 1 0] X + [1]                               
                               [0 0 0]     [0]                               
                            >= [0 0 0]     [1]                               
                               [0 1 0] X + [1]                               
                               [0 0 0]     [0]                               
                            =  a__geq(X,Y)                                   
        
            a__if(X1,X2,X3) =  [1 0 0]      [0 1 0]      [0 1 0]      [0]    
                               [0 1 1] X1 + [0 1 0] X2 + [0 1 1] X3 + [0]    
                               [0 0 0]      [0 0 1]      [0 0 1]      [0]    
                            >= [0 0 0]      [0 0 0]      [0 1 0]      [0]    
                               [0 1 1] X1 + [0 1 0] X2 + [0 1 1] X3 + [0]    
                               [0 0 0]      [0 0 1]      [0 0 1]      [0]    
                            =  if(X1,X2,X3)                                  
        
         a__if(false(),X,Y) =  [0 1 0]     [0 1 0]     [0]                   
                               [0 1 0] X + [0 1 1] Y + [1]                   
                               [0 0 1]     [0 0 1]     [0]                   
                            >= [0 1 0]     [0]                               
                               [0 1 0] Y + [0]                               
                               [0 0 1]     [0]                               
                            =  mark(Y)                                       
        
          a__if(true(),X,Y) =  [0 1 0]     [0 1 0]     [0]                   
                               [0 1 0] X + [0 1 1] Y + [0]                   
                               [0 0 1]     [0 0 1]     [0]                   
                            >= [0 1 0]     [0]                               
                               [0 1 0] X + [0]                               
                               [0 0 1]     [0]                               
                            =  mark(X)                                       
        
            a__minus(X1,X2) =  [0]                                           
                               [0]                                           
                               [0]                                           
                            >= [0]                                           
                               [0]                                           
                               [0]                                           
                            =  minus(X1,X2)                                  
        
            a__minus(0(),Y) =  [0]                                           
                               [0]                                           
                               [0]                                           
                            >= [0]                                           
                               [0]                                           
                               [0]                                           
                            =  0()                                           
        
        a__minus(s(X),s(Y)) =  [0]                                           
                               [0]                                           
                               [0]                                           
                            >= [0]                                           
                               [0]                                           
                               [0]                                           
                            =  a__minus(X,Y)                                 
        
                  mark(0()) =  [0]                                           
                               [0]                                           
                               [0]                                           
                            >= [0]                                           
                               [0]                                           
                               [0]                                           
                            =  0()                                           
        
           mark(div(X1,X2)) =  [0 1 1]      [0]                              
                               [0 1 1] X1 + [0]                              
                               [0 0 1]      [0]                              
                            >= [0 1 1]      [0]                              
                               [0 1 1] X1 + [0]                              
                               [0 0 1]      [0]                              
                            =  a__div(mark(X1),X2)                           
        
              mark(false()) =  [1]                                           
                               [1]                                           
                               [0]                                           
                            >= [0]                                           
                               [1]                                           
                               [0]                                           
                            =  false()                                       
        
           mark(geq(X1,X2)) =  [0 1 0]      [1]                              
                               [0 1 0] X1 + [1]                              
                               [0 0 0]      [0]                              
                            >= [0 0 0]      [1]                              
                               [0 1 0] X1 + [1]                              
                               [0 0 0]      [0]                              
                            =  a__geq(X1,X2)                                 
        
         mark(if(X1,X2,X3)) =  [0 1 1]      [0 1 0]      [0 1 1]      [0]    
                               [0 1 1] X1 + [0 1 0] X2 + [0 1 1] X3 + [0]    
                               [0 0 0]      [0 0 1]      [0 0 1]      [0]    
                            >= [0 1 0]      [0 1 0]      [0 1 0]      [0]    
                               [0 1 1] X1 + [0 1 0] X2 + [0 1 1] X3 + [0]    
                               [0 0 0]      [0 0 1]      [0 0 1]      [0]    
                            =  a__if(mark(X1),X2,X3)                         
        
         mark(minus(X1,X2)) =  [0]                                           
                               [0]                                           
                               [0]                                           
                            >= [0]                                           
                               [0]                                           
                               [0]                                           
                            =  a__minus(X1,X2)                               
        
                 mark(s(X)) =  [0 1 0]     [0]                               
                               [0 1 0] X + [0]                               
                               [0 0 0]     [1]                               
                            >= [0 1 0]     [0]                               
                               [0 1 0] X + [0]                               
                               [0 0 0]     [1]                               
                            =  s(mark(X))                                    
        
               mark(true()) =  [0]                                           
                               [0]                                           
                               [0]                                           
                            >= [0]                                           
                               [0]                                           
                               [0]                                           
                            =  true()                                        
        
* Step 17: NaturalMI WORST_CASE(?,O(n^3))
    + Considered Problem:
        - Strict TRS:
            a__minus(X1,X2) -> minus(X1,X2)
        - Weak TRS:
            a__div(X1,X2) -> div(X1,X2)
            a__div(0(),s(Y)) -> 0()
            a__div(s(X),s(Y)) -> a__if(a__geq(X,Y),s(div(minus(X,Y),s(Y))),0())
            a__geq(X,0()) -> true()
            a__geq(X1,X2) -> geq(X1,X2)
            a__geq(0(),s(Y)) -> false()
            a__geq(s(X),s(Y)) -> a__geq(X,Y)
            a__if(X1,X2,X3) -> if(X1,X2,X3)
            a__if(false(),X,Y) -> mark(Y)
            a__if(true(),X,Y) -> mark(X)
            a__minus(0(),Y) -> 0()
            a__minus(s(X),s(Y)) -> a__minus(X,Y)
            mark(0()) -> 0()
            mark(div(X1,X2)) -> a__div(mark(X1),X2)
            mark(false()) -> false()
            mark(geq(X1,X2)) -> a__geq(X1,X2)
            mark(if(X1,X2,X3)) -> a__if(mark(X1),X2,X3)
            mark(minus(X1,X2)) -> a__minus(X1,X2)
            mark(s(X)) -> s(mark(X))
            mark(true()) -> true()
        - Signature:
            {a__div/2,a__geq/2,a__if/3,a__minus/2,mark/1} / {0/0,div/2,false/0,geq/2,if/3,minus/2,s/1,true/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {a__div,a__geq,a__if,a__minus,mark} and constructors {0
            ,div,false,geq,if,minus,s,true}
    + Applied Processor:
        NaturalMI {miDimension = 3, miDegree = 3, 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(a__div) = {1},
          uargs(a__if) = {1},
          uargs(s) = {1}
        
        Following symbols are considered usable:
          {a__div,a__geq,a__if,a__minus,mark}
        TcT has computed the following interpretation:
                 p(0) = [0]                                       
                        [0]                                       
                        [0]                                       
            p(a__div) = [1 0 1]      [1]                          
                        [0 1 1] x1 + [1]                          
                        [0 0 1]      [0]                          
            p(a__geq) = [0 0 0]      [0]                          
                        [0 1 0] x1 + [0]                          
                        [0 0 0]      [0]                          
             p(a__if) = [1 0 0]      [0 1 0]      [0 1 0]      [0]
                        [0 1 0] x1 + [0 1 0] x2 + [0 1 0] x3 + [0]
                        [0 0 0]      [0 0 1]      [0 0 1]      [0]
          p(a__minus) = [1]                                       
                        [1]                                       
                        [0]                                       
               p(div) = [0 0 0]      [1]                          
                        [0 1 1] x1 + [1]                          
                        [0 0 1]      [0]                          
             p(false) = [0]                                       
                        [0]                                       
                        [0]                                       
               p(geq) = [0 0 0]      [0]                          
                        [0 1 0] x1 + [0]                          
                        [0 0 0]      [0]                          
                p(if) = [0 0 0]      [0 1 0]      [0 0 0]      [0]
                        [0 1 0] x1 + [0 1 0] x2 + [0 1 0] x3 + [0]
                        [0 0 0]      [0 0 1]      [0 0 1]      [0]
              p(mark) = [0 1 0]      [0]                          
                        [0 1 0] x1 + [0]                          
                        [0 0 1]      [0]                          
             p(minus) = [0]                                       
                        [1]                                       
                        [0]                                       
                 p(s) = [1 0 0]      [0]                          
                        [0 1 0] x1 + [0]                          
                        [0 0 0]      [1]                          
              p(true) = [0]                                       
                        [0]                                       
                        [0]                                       
        
        Following rules are strictly oriented:
        a__minus(X1,X2) = [1]         
                          [1]         
                          [0]         
                        > [0]         
                          [1]         
                          [0]         
                        = minus(X1,X2)
        
        
        Following rules are (at-least) weakly oriented:
              a__div(X1,X2) =  [1 0 1]      [1]                              
                               [0 1 1] X1 + [1]                              
                               [0 0 1]      [0]                              
                            >= [0 0 0]      [1]                              
                               [0 1 1] X1 + [1]                              
                               [0 0 1]      [0]                              
                            =  div(X1,X2)                                    
        
           a__div(0(),s(Y)) =  [1]                                           
                               [1]                                           
                               [0]                                           
                            >= [0]                                           
                               [0]                                           
                               [0]                                           
                            =  0()                                           
        
          a__div(s(X),s(Y)) =  [1 0 0]     [2]                               
                               [0 1 0] X + [2]                               
                               [0 0 0]     [1]                               
                            >= [0 0 0]     [2]                               
                               [0 1 0] X + [2]                               
                               [0 0 0]     [1]                               
                            =  a__if(a__geq(X,Y),s(div(minus(X,Y),s(Y))),0())
        
              a__geq(X,0()) =  [0 0 0]     [0]                               
                               [0 1 0] X + [0]                               
                               [0 0 0]     [0]                               
                            >= [0]                                           
                               [0]                                           
                               [0]                                           
                            =  true()                                        
        
              a__geq(X1,X2) =  [0 0 0]      [0]                              
                               [0 1 0] X1 + [0]                              
                               [0 0 0]      [0]                              
                            >= [0 0 0]      [0]                              
                               [0 1 0] X1 + [0]                              
                               [0 0 0]      [0]                              
                            =  geq(X1,X2)                                    
        
           a__geq(0(),s(Y)) =  [0]                                           
                               [0]                                           
                               [0]                                           
                            >= [0]                                           
                               [0]                                           
                               [0]                                           
                            =  false()                                       
        
          a__geq(s(X),s(Y)) =  [0 0 0]     [0]                               
                               [0 1 0] X + [0]                               
                               [0 0 0]     [0]                               
                            >= [0 0 0]     [0]                               
                               [0 1 0] X + [0]                               
                               [0 0 0]     [0]                               
                            =  a__geq(X,Y)                                   
        
            a__if(X1,X2,X3) =  [1 0 0]      [0 1 0]      [0 1 0]      [0]    
                               [0 1 0] X1 + [0 1 0] X2 + [0 1 0] X3 + [0]    
                               [0 0 0]      [0 0 1]      [0 0 1]      [0]    
                            >= [0 0 0]      [0 1 0]      [0 0 0]      [0]    
                               [0 1 0] X1 + [0 1 0] X2 + [0 1 0] X3 + [0]    
                               [0 0 0]      [0 0 1]      [0 0 1]      [0]    
                            =  if(X1,X2,X3)                                  
        
         a__if(false(),X,Y) =  [0 1 0]     [0 1 0]     [0]                   
                               [0 1 0] X + [0 1 0] Y + [0]                   
                               [0 0 1]     [0 0 1]     [0]                   
                            >= [0 1 0]     [0]                               
                               [0 1 0] Y + [0]                               
                               [0 0 1]     [0]                               
                            =  mark(Y)                                       
        
          a__if(true(),X,Y) =  [0 1 0]     [0 1 0]     [0]                   
                               [0 1 0] X + [0 1 0] Y + [0]                   
                               [0 0 1]     [0 0 1]     [0]                   
                            >= [0 1 0]     [0]                               
                               [0 1 0] X + [0]                               
                               [0 0 1]     [0]                               
                            =  mark(X)                                       
        
            a__minus(0(),Y) =  [1]                                           
                               [1]                                           
                               [0]                                           
                            >= [0]                                           
                               [0]                                           
                               [0]                                           
                            =  0()                                           
        
        a__minus(s(X),s(Y)) =  [1]                                           
                               [1]                                           
                               [0]                                           
                            >= [1]                                           
                               [1]                                           
                               [0]                                           
                            =  a__minus(X,Y)                                 
        
                  mark(0()) =  [0]                                           
                               [0]                                           
                               [0]                                           
                            >= [0]                                           
                               [0]                                           
                               [0]                                           
                            =  0()                                           
        
           mark(div(X1,X2)) =  [0 1 1]      [1]                              
                               [0 1 1] X1 + [1]                              
                               [0 0 1]      [0]                              
                            >= [0 1 1]      [1]                              
                               [0 1 1] X1 + [1]                              
                               [0 0 1]      [0]                              
                            =  a__div(mark(X1),X2)                           
        
              mark(false()) =  [0]                                           
                               [0]                                           
                               [0]                                           
                            >= [0]                                           
                               [0]                                           
                               [0]                                           
                            =  false()                                       
        
           mark(geq(X1,X2)) =  [0 1 0]      [0]                              
                               [0 1 0] X1 + [0]                              
                               [0 0 0]      [0]                              
                            >= [0 0 0]      [0]                              
                               [0 1 0] X1 + [0]                              
                               [0 0 0]      [0]                              
                            =  a__geq(X1,X2)                                 
        
         mark(if(X1,X2,X3)) =  [0 1 0]      [0 1 0]      [0 1 0]      [0]    
                               [0 1 0] X1 + [0 1 0] X2 + [0 1 0] X3 + [0]    
                               [0 0 0]      [0 0 1]      [0 0 1]      [0]    
                            >= [0 1 0]      [0 1 0]      [0 1 0]      [0]    
                               [0 1 0] X1 + [0 1 0] X2 + [0 1 0] X3 + [0]    
                               [0 0 0]      [0 0 1]      [0 0 1]      [0]    
                            =  a__if(mark(X1),X2,X3)                         
        
         mark(minus(X1,X2)) =  [1]                                           
                               [1]                                           
                               [0]                                           
                            >= [1]                                           
                               [1]                                           
                               [0]                                           
                            =  a__minus(X1,X2)                               
        
                 mark(s(X)) =  [0 1 0]     [0]                               
                               [0 1 0] X + [0]                               
                               [0 0 0]     [1]                               
                            >= [0 1 0]     [0]                               
                               [0 1 0] X + [0]                               
                               [0 0 0]     [1]                               
                            =  s(mark(X))                                    
        
               mark(true()) =  [0]                                           
                               [0]                                           
                               [0]                                           
                            >= [0]                                           
                               [0]                                           
                               [0]                                           
                            =  true()                                        
        
* Step 18: EmptyProcessor WORST_CASE(?,O(1))
    + Considered Problem:
        - Weak TRS:
            a__div(X1,X2) -> div(X1,X2)
            a__div(0(),s(Y)) -> 0()
            a__div(s(X),s(Y)) -> a__if(a__geq(X,Y),s(div(minus(X,Y),s(Y))),0())
            a__geq(X,0()) -> true()
            a__geq(X1,X2) -> geq(X1,X2)
            a__geq(0(),s(Y)) -> false()
            a__geq(s(X),s(Y)) -> a__geq(X,Y)
            a__if(X1,X2,X3) -> if(X1,X2,X3)
            a__if(false(),X,Y) -> mark(Y)
            a__if(true(),X,Y) -> mark(X)
            a__minus(X1,X2) -> minus(X1,X2)
            a__minus(0(),Y) -> 0()
            a__minus(s(X),s(Y)) -> a__minus(X,Y)
            mark(0()) -> 0()
            mark(div(X1,X2)) -> a__div(mark(X1),X2)
            mark(false()) -> false()
            mark(geq(X1,X2)) -> a__geq(X1,X2)
            mark(if(X1,X2,X3)) -> a__if(mark(X1),X2,X3)
            mark(minus(X1,X2)) -> a__minus(X1,X2)
            mark(s(X)) -> s(mark(X))
            mark(true()) -> true()
        - Signature:
            {a__div/2,a__geq/2,a__if/3,a__minus/2,mark/1} / {0/0,div/2,false/0,geq/2,if/3,minus/2,s/1,true/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {a__div,a__geq,a__if,a__minus,mark} and constructors {0
            ,div,false,geq,if,minus,s,true}
    + Applied Processor:
        EmptyProcessor
    + Details:
        The problem is already closed. The intended complexity is O(1).

WORST_CASE(?,O(n^3))