*** 1 Progress [(O(1),O(n^1))]  ***
    Considered Problem:
      Strict DP Rules:
        
      Strict TRS Rules:
        div(0(),s(Y)) -> 0()
        div(s(X),s(Y)) -> if(geq(X,Y),s(div(minus(X,Y),s(Y))),0())
        geq(X,0()) -> true()
        geq(0(),s(Y)) -> false()
        geq(s(X),s(Y)) -> geq(X,Y)
        if(false(),X,Y) -> Y
        if(true(),X,Y) -> X
        minus(0(),Y) -> 0()
        minus(s(X),s(Y)) -> minus(X,Y)
      Weak DP Rules:
        
      Weak TRS Rules:
        
      Signature:
        {div/2,geq/2,if/3,minus/2} / {0/0,false/0,s/1,true/0}
      Obligation:
        Innermost
        basic terms: {div,geq,if,minus}/{0,false,s,true}
    Applied Processor:
      WeightGap {wgDimension = 1, wgDegree = 1, wgKind = Algebraic, wgUArgs = UArgs, wgOn = WgOnAny}
    Proof:
      The weightgap principle applies using the following nonconstant growth matrix-interpretation:
        We apply a matrix interpretation of kind constructor based matrix interpretation:
        The following argument positions are considered usable:
          uargs(div) = {1},
          uargs(if) = {1,2},
          uargs(s) = {1}
        
        Following symbols are considered usable:
          {}
        TcT has computed the following interpretation:
              p(0) = [1]                           
            p(div) = [1] x1 + [8] x2 + [1]         
          p(false) = [0]                           
            p(geq) = [13]                          
             p(if) = [1] x1 + [1] x2 + [4] x3 + [1]
          p(minus) = [0]                           
              p(s) = [1] x1 + [1]                  
           p(true) = [0]                           
        
        Following rules are strictly oriented:
          div(0(),s(Y)) = [8] Y + [10]       
                        > [1]                
                        = 0()                
        
             geq(X,0()) = [13]               
                        > [0]                
                        = true()             
        
          geq(0(),s(Y)) = [13]               
                        > [0]                
                        = false()            
        
        if(false(),X,Y) = [1] X + [4] Y + [1]
                        > [1] Y + [0]        
                        = Y                  
        
         if(true(),X,Y) = [1] X + [4] Y + [1]
                        > [1] X + [0]        
                        = X                  
        
        
        Following rules are (at-least) weakly oriented:
          div(s(X),s(Y)) =  [1] X + [8] Y + [10]      
                         >= [8] Y + [28]              
                         =  if(geq(X,Y)               
                              ,s(div(minus(X,Y),s(Y)))
                              ,0())                   
        
          geq(s(X),s(Y)) =  [13]                      
                         >= [13]                      
                         =  geq(X,Y)                  
        
            minus(0(),Y) =  [0]                       
                         >= [1]                       
                         =  0()                       
        
        minus(s(X),s(Y)) =  [0]                       
                         >= [0]                       
                         =  minus(X,Y)                
        
      Further, it can be verified that all rules not oriented are covered by the weightgap condition.
*** 1.1 Progress [(O(1),O(n^1))]  ***
    Considered Problem:
      Strict DP Rules:
        
      Strict TRS Rules:
        div(s(X),s(Y)) -> if(geq(X,Y),s(div(minus(X,Y),s(Y))),0())
        geq(s(X),s(Y)) -> geq(X,Y)
        minus(0(),Y) -> 0()
        minus(s(X),s(Y)) -> minus(X,Y)
      Weak DP Rules:
        
      Weak TRS Rules:
        div(0(),s(Y)) -> 0()
        geq(X,0()) -> true()
        geq(0(),s(Y)) -> false()
        if(false(),X,Y) -> Y
        if(true(),X,Y) -> X
      Signature:
        {div/2,geq/2,if/3,minus/2} / {0/0,false/0,s/1,true/0}
      Obligation:
        Innermost
        basic terms: {div,geq,if,minus}/{0,false,s,true}
    Applied Processor:
      WeightGap {wgDimension = 1, wgDegree = 1, wgKind = Algebraic, wgUArgs = UArgs, wgOn = WgOnAny}
    Proof:
      The weightgap principle applies using the following nonconstant growth matrix-interpretation:
        We apply a matrix interpretation of kind constructor based matrix interpretation:
        The following argument positions are considered usable:
          uargs(div) = {1},
          uargs(if) = {1,2},
          uargs(s) = {1}
        
        Following symbols are considered usable:
          {}
        TcT has computed the following interpretation:
              p(0) = [0]                           
            p(div) = [1] x1 + [8] x2 + [0]         
          p(false) = [3]                           
            p(geq) = [8]                           
             p(if) = [1] x1 + [1] x2 + [8] x3 + [9]
          p(minus) = [1]                           
              p(s) = [1] x1 + [0]                  
           p(true) = [1]                           
        
        Following rules are strictly oriented:
        minus(0(),Y) = [1]
                     > [0]
                     = 0()
        
        
        Following rules are (at-least) weakly oriented:
           div(0(),s(Y)) =  [8] Y + [0]               
                         >= [0]                       
                         =  0()                       
        
          div(s(X),s(Y)) =  [1] X + [8] Y + [0]       
                         >= [8] Y + [18]              
                         =  if(geq(X,Y)               
                              ,s(div(minus(X,Y),s(Y)))
                              ,0())                   
        
              geq(X,0()) =  [8]                       
                         >= [1]                       
                         =  true()                    
        
           geq(0(),s(Y)) =  [8]                       
                         >= [3]                       
                         =  false()                   
        
          geq(s(X),s(Y)) =  [8]                       
                         >= [8]                       
                         =  geq(X,Y)                  
        
         if(false(),X,Y) =  [1] X + [8] Y + [12]      
                         >= [1] Y + [0]               
                         =  Y                         
        
          if(true(),X,Y) =  [1] X + [8] Y + [10]      
                         >= [1] X + [0]               
                         =  X                         
        
        minus(s(X),s(Y)) =  [1]                       
                         >= [1]                       
                         =  minus(X,Y)                
        
      Further, it can be verified that all rules not oriented are covered by the weightgap condition.
*** 1.1.1 Progress [(O(1),O(n^1))]  ***
    Considered Problem:
      Strict DP Rules:
        
      Strict TRS Rules:
        div(s(X),s(Y)) -> if(geq(X,Y),s(div(minus(X,Y),s(Y))),0())
        geq(s(X),s(Y)) -> geq(X,Y)
        minus(s(X),s(Y)) -> minus(X,Y)
      Weak DP Rules:
        
      Weak TRS Rules:
        div(0(),s(Y)) -> 0()
        geq(X,0()) -> true()
        geq(0(),s(Y)) -> false()
        if(false(),X,Y) -> Y
        if(true(),X,Y) -> X
        minus(0(),Y) -> 0()
      Signature:
        {div/2,geq/2,if/3,minus/2} / {0/0,false/0,s/1,true/0}
      Obligation:
        Innermost
        basic terms: {div,geq,if,minus}/{0,false,s,true}
    Applied Processor:
      WeightGap {wgDimension = 1, wgDegree = 1, wgKind = Algebraic, wgUArgs = UArgs, wgOn = WgOnAny}
    Proof:
      The weightgap principle applies using the following nonconstant growth matrix-interpretation:
        We apply a matrix interpretation of kind constructor based matrix interpretation:
        The following argument positions are considered usable:
          uargs(div) = {1},
          uargs(if) = {1,2},
          uargs(s) = {1}
        
        Following symbols are considered usable:
          {}
        TcT has computed the following interpretation:
              p(0) = [8]                           
            p(div) = [1] x1 + [1] x2 + [0]         
          p(false) = [10]                          
            p(geq) = [1] x1 + [4]                  
             p(if) = [1] x1 + [1] x2 + [1] x3 + [6]
          p(minus) = [9]                           
              p(s) = [1] x1 + [1]                  
           p(true) = [2]                           
        
        Following rules are strictly oriented:
        geq(s(X),s(Y)) = [1] X + [5]
                       > [1] X + [4]
                       = geq(X,Y)   
        
        
        Following rules are (at-least) weakly oriented:
           div(0(),s(Y)) =  [1] Y + [9]               
                         >= [8]                       
                         =  0()                       
        
          div(s(X),s(Y)) =  [1] X + [1] Y + [2]       
                         >= [1] X + [1] Y + [29]      
                         =  if(geq(X,Y)               
                              ,s(div(minus(X,Y),s(Y)))
                              ,0())                   
        
              geq(X,0()) =  [1] X + [4]               
                         >= [2]                       
                         =  true()                    
        
           geq(0(),s(Y)) =  [12]                      
                         >= [10]                      
                         =  false()                   
        
         if(false(),X,Y) =  [1] X + [1] Y + [16]      
                         >= [1] Y + [0]               
                         =  Y                         
        
          if(true(),X,Y) =  [1] X + [1] Y + [8]       
                         >= [1] X + [0]               
                         =  X                         
        
            minus(0(),Y) =  [9]                       
                         >= [8]                       
                         =  0()                       
        
        minus(s(X),s(Y)) =  [9]                       
                         >= [9]                       
                         =  minus(X,Y)                
        
      Further, it can be verified that all rules not oriented are covered by the weightgap condition.
*** 1.1.1.1 Progress [(O(1),O(n^1))]  ***
    Considered Problem:
      Strict DP Rules:
        
      Strict TRS Rules:
        div(s(X),s(Y)) -> if(geq(X,Y),s(div(minus(X,Y),s(Y))),0())
        minus(s(X),s(Y)) -> minus(X,Y)
      Weak DP Rules:
        
      Weak TRS Rules:
        div(0(),s(Y)) -> 0()
        geq(X,0()) -> true()
        geq(0(),s(Y)) -> false()
        geq(s(X),s(Y)) -> geq(X,Y)
        if(false(),X,Y) -> Y
        if(true(),X,Y) -> X
        minus(0(),Y) -> 0()
      Signature:
        {div/2,geq/2,if/3,minus/2} / {0/0,false/0,s/1,true/0}
      Obligation:
        Innermost
        basic terms: {div,geq,if,minus}/{0,false,s,true}
    Applied Processor:
      WeightGap {wgDimension = 1, wgDegree = 1, wgKind = Algebraic, wgUArgs = UArgs, wgOn = WgOnAny}
    Proof:
      The weightgap principle applies using the following nonconstant growth matrix-interpretation:
        We apply a matrix interpretation of kind constructor based matrix interpretation:
        The following argument positions are considered usable:
          uargs(div) = {1},
          uargs(if) = {1,2},
          uargs(s) = {1}
        
        Following symbols are considered usable:
          {}
        TcT has computed the following interpretation:
              p(0) = [5]                           
            p(div) = [1] x1 + [8]                  
          p(false) = [0]                           
            p(geq) = [0]                           
             p(if) = [1] x1 + [1] x2 + [3] x3 + [0]
          p(minus) = [1] x1 + [0]                  
              p(s) = [1] x1 + [8]                  
           p(true) = [0]                           
        
        Following rules are strictly oriented:
        minus(s(X),s(Y)) = [1] X + [8]
                         > [1] X + [0]
                         = minus(X,Y) 
        
        
        Following rules are (at-least) weakly oriented:
          div(0(),s(Y)) =  [13]                      
                        >= [5]                       
                        =  0()                       
        
         div(s(X),s(Y)) =  [1] X + [16]              
                        >= [1] X + [31]              
                        =  if(geq(X,Y)               
                             ,s(div(minus(X,Y),s(Y)))
                             ,0())                   
        
             geq(X,0()) =  [0]                       
                        >= [0]                       
                        =  true()                    
        
          geq(0(),s(Y)) =  [0]                       
                        >= [0]                       
                        =  false()                   
        
         geq(s(X),s(Y)) =  [0]                       
                        >= [0]                       
                        =  geq(X,Y)                  
        
        if(false(),X,Y) =  [1] X + [3] Y + [0]       
                        >= [1] Y + [0]               
                        =  Y                         
        
         if(true(),X,Y) =  [1] X + [3] Y + [0]       
                        >= [1] X + [0]               
                        =  X                         
        
           minus(0(),Y) =  [5]                       
                        >= [5]                       
                        =  0()                       
        
      Further, it can be verified that all rules not oriented are covered by the weightgap condition.
*** 1.1.1.1.1 Progress [(O(1),O(n^1))]  ***
    Considered Problem:
      Strict DP Rules:
        
      Strict TRS Rules:
        div(s(X),s(Y)) -> if(geq(X,Y),s(div(minus(X,Y),s(Y))),0())
      Weak DP Rules:
        
      Weak TRS Rules:
        div(0(),s(Y)) -> 0()
        geq(X,0()) -> true()
        geq(0(),s(Y)) -> false()
        geq(s(X),s(Y)) -> geq(X,Y)
        if(false(),X,Y) -> Y
        if(true(),X,Y) -> X
        minus(0(),Y) -> 0()
        minus(s(X),s(Y)) -> minus(X,Y)
      Signature:
        {div/2,geq/2,if/3,minus/2} / {0/0,false/0,s/1,true/0}
      Obligation:
        Innermost
        basic terms: {div,geq,if,minus}/{0,false,s,true}
    Applied Processor:
      NaturalMI {miDimension = 1, miDegree = 1, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Just any strict-rules, greedy = NoGreedy}
    Proof:
      We apply a matrix interpretation of kind constructor based matrix interpretation:
      The following argument positions are considered usable:
        uargs(div) = {1},
        uargs(if) = {1,2},
        uargs(s) = {1}
      
      Following symbols are considered usable:
        {div,geq,if,minus}
      TcT has computed the following interpretation:
            p(0) = [0]                           
          p(div) = [8] x1 + [1]                  
        p(false) = [0]                           
          p(geq) = [0]                           
           p(if) = [1] x1 + [4] x2 + [8] x3 + [0]
        p(minus) = [0]                           
            p(s) = [1] x1 + [1]                  
         p(true) = [0]                           
      
      Following rules are strictly oriented:
      div(s(X),s(Y)) = [8] X + [9]               
                     > [8]                       
                     = if(geq(X,Y)               
                         ,s(div(minus(X,Y),s(Y)))
                         ,0())                   
      
      
      Following rules are (at-least) weakly oriented:
         div(0(),s(Y)) =  [1]                
                       >= [0]                
                       =  0()                
      
            geq(X,0()) =  [0]                
                       >= [0]                
                       =  true()             
      
         geq(0(),s(Y)) =  [0]                
                       >= [0]                
                       =  false()            
      
        geq(s(X),s(Y)) =  [0]                
                       >= [0]                
                       =  geq(X,Y)           
      
       if(false(),X,Y) =  [4] X + [8] Y + [0]
                       >= [1] Y + [0]        
                       =  Y                  
      
        if(true(),X,Y) =  [4] X + [8] Y + [0]
                       >= [1] X + [0]        
                       =  X                  
      
          minus(0(),Y) =  [0]                
                       >= [0]                
                       =  0()                
      
      minus(s(X),s(Y)) =  [0]                
                       >= [0]                
                       =  minus(X,Y)         
      
*** 1.1.1.1.1.1 Progress [(O(1),O(1))]  ***
    Considered Problem:
      Strict DP Rules:
        
      Strict TRS Rules:
        
      Weak DP Rules:
        
      Weak TRS Rules:
        div(0(),s(Y)) -> 0()
        div(s(X),s(Y)) -> if(geq(X,Y),s(div(minus(X,Y),s(Y))),0())
        geq(X,0()) -> true()
        geq(0(),s(Y)) -> false()
        geq(s(X),s(Y)) -> geq(X,Y)
        if(false(),X,Y) -> Y
        if(true(),X,Y) -> X
        minus(0(),Y) -> 0()
        minus(s(X),s(Y)) -> minus(X,Y)
      Signature:
        {div/2,geq/2,if/3,minus/2} / {0/0,false/0,s/1,true/0}
      Obligation:
        Innermost
        basic terms: {div,geq,if,minus}/{0,false,s,true}
    Applied Processor:
      EmptyProcessor
    Proof:
      The problem is already closed. The intended complexity is O(1).