*** 1 Progress [(O(1),O(n^2))]  ***
    Considered Problem:
      Strict DP Rules:
        
      Strict TRS Rules:
        if_mod(false(),s(x),s(y)) -> s(x)
        if_mod(true(),s(x),s(y)) -> mod(minus(x,y),s(y))
        le(0(),y) -> true()
        le(s(x),0()) -> false()
        le(s(x),s(y)) -> le(x,y)
        minus(x,0()) -> x
        minus(s(x),s(y)) -> minus(x,y)
        mod(0(),y) -> 0()
        mod(s(x),0()) -> 0()
        mod(s(x),s(y)) -> if_mod(le(y,x),s(x),s(y))
      Weak DP Rules:
        
      Weak TRS Rules:
        
      Signature:
        {if_mod/3,le/2,minus/2,mod/2} / {0/0,false/0,s/1,true/0}
      Obligation:
        Full
        basic terms: {if_mod,le,minus,mod}/{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(if_mod) = {1},
          uargs(mod) = {1}
        
        Following symbols are considered usable:
          {}
        TcT has computed the following interpretation:
               p(0) = [0]                           
           p(false) = [0]                           
          p(if_mod) = [1] x1 + [1] x2 + [1] x3 + [0]
              p(le) = [11]                          
           p(minus) = [1] x1 + [1]                  
             p(mod) = [1] x1 + [1] x2 + [1]         
               p(s) = [1] x1 + [8]                  
            p(true) = [0]                           
        
        Following rules are strictly oriented:
        if_mod(false(),s(x),s(y)) = [1] x + [1] y + [16]
                                  > [1] x + [8]         
                                  = s(x)                
        
         if_mod(true(),s(x),s(y)) = [1] x + [1] y + [16]
                                  > [1] x + [1] y + [10]
                                  = mod(minus(x,y),s(y))
        
                        le(0(),y) = [11]                
                                  > [0]                 
                                  = true()              
        
                     le(s(x),0()) = [11]                
                                  > [0]                 
                                  = false()             
        
                     minus(x,0()) = [1] x + [1]         
                                  > [1] x + [0]         
                                  = x                   
        
                 minus(s(x),s(y)) = [1] x + [9]         
                                  > [1] x + [1]         
                                  = minus(x,y)          
        
                       mod(0(),y) = [1] y + [1]         
                                  > [0]                 
                                  = 0()                 
        
                    mod(s(x),0()) = [1] x + [9]         
                                  > [0]                 
                                  = 0()                 
        
        
        Following rules are (at-least) weakly oriented:
         le(s(x),s(y)) =  [11]                     
                       >= [11]                     
                       =  le(x,y)                  
        
        mod(s(x),s(y)) =  [1] x + [1] y + [17]     
                       >= [1] x + [1] y + [27]     
                       =  if_mod(le(y,x),s(x),s(y))
        
      Further, it can be verified that all rules not oriented are covered by the weightgap condition.
*** 1.1 Progress [(O(1),O(n^2))]  ***
    Considered Problem:
      Strict DP Rules:
        
      Strict TRS Rules:
        le(s(x),s(y)) -> le(x,y)
        mod(s(x),s(y)) -> if_mod(le(y,x),s(x),s(y))
      Weak DP Rules:
        
      Weak TRS Rules:
        if_mod(false(),s(x),s(y)) -> s(x)
        if_mod(true(),s(x),s(y)) -> mod(minus(x,y),s(y))
        le(0(),y) -> true()
        le(s(x),0()) -> false()
        minus(x,0()) -> x
        minus(s(x),s(y)) -> minus(x,y)
        mod(0(),y) -> 0()
        mod(s(x),0()) -> 0()
      Signature:
        {if_mod/3,le/2,minus/2,mod/2} / {0/0,false/0,s/1,true/0}
      Obligation:
        Full
        basic terms: {if_mod,le,minus,mod}/{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(if_mod) = {1},
          uargs(mod) = {1}
        
        Following symbols are considered usable:
          {}
        TcT has computed the following interpretation:
               p(0) = [4]                  
           p(false) = [0]                  
          p(if_mod) = [1] x1 + [1] x2 + [0]
              p(le) = [0]                  
           p(minus) = [1] x1 + [1]         
             p(mod) = [1] x1 + [2]         
               p(s) = [1] x1 + [4]         
            p(true) = [0]                  
        
        Following rules are strictly oriented:
        mod(s(x),s(y)) = [1] x + [6]              
                       > [1] x + [4]              
                       = if_mod(le(y,x),s(x),s(y))
        
        
        Following rules are (at-least) weakly oriented:
        if_mod(false(),s(x),s(y)) =  [1] x + [4]         
                                  >= [1] x + [4]         
                                  =  s(x)                
        
         if_mod(true(),s(x),s(y)) =  [1] x + [4]         
                                  >= [1] x + [3]         
                                  =  mod(minus(x,y),s(y))
        
                        le(0(),y) =  [0]                 
                                  >= [0]                 
                                  =  true()              
        
                     le(s(x),0()) =  [0]                 
                                  >= [0]                 
                                  =  false()             
        
                    le(s(x),s(y)) =  [0]                 
                                  >= [0]                 
                                  =  le(x,y)             
        
                     minus(x,0()) =  [1] x + [1]         
                                  >= [1] x + [0]         
                                  =  x                   
        
                 minus(s(x),s(y)) =  [1] x + [5]         
                                  >= [1] x + [1]         
                                  =  minus(x,y)          
        
                       mod(0(),y) =  [6]                 
                                  >= [4]                 
                                  =  0()                 
        
                    mod(s(x),0()) =  [1] x + [6]         
                                  >= [4]                 
                                  =  0()                 
        
      Further, it can be verified that all rules not oriented are covered by the weightgap condition.
*** 1.1.1 Progress [(O(1),O(n^2))]  ***
    Considered Problem:
      Strict DP Rules:
        
      Strict TRS Rules:
        le(s(x),s(y)) -> le(x,y)
      Weak DP Rules:
        
      Weak TRS Rules:
        if_mod(false(),s(x),s(y)) -> s(x)
        if_mod(true(),s(x),s(y)) -> mod(minus(x,y),s(y))
        le(0(),y) -> true()
        le(s(x),0()) -> false()
        minus(x,0()) -> x
        minus(s(x),s(y)) -> minus(x,y)
        mod(0(),y) -> 0()
        mod(s(x),0()) -> 0()
        mod(s(x),s(y)) -> if_mod(le(y,x),s(x),s(y))
      Signature:
        {if_mod/3,le/2,minus/2,mod/2} / {0/0,false/0,s/1,true/0}
      Obligation:
        Full
        basic terms: {if_mod,le,minus,mod}/{0,false,s,true}
    Applied Processor:
      NaturalPI {shape = Mixed 2, restrict = Restrict, uargs = UArgs, urules = URules, selector = Just any strict-rules, greedy = NoGreedy}
    Proof:
      We apply a polynomial interpretation of kind constructor-based(mixed(2)):
      The following argument positions are considered usable:
        uargs(if_mod) = {1},
        uargs(mod) = {1}
      
      Following symbols are considered usable:
        {}
      TcT has computed the following interpretation:
             p(0) = 0                      
         p(false) = 0                      
        p(if_mod) = 1 + x1 + 7*x2 + 7*x2*x3
            p(le) = x1                     
         p(minus) = x1                     
           p(mod) = 7*x1 + 7*x1*x2 + x2    
             p(s) = 1 + x1                 
          p(true) = 0                      
      
      Following rules are strictly oriented:
      le(s(x),s(y)) = 1 + x  
                    > x      
                    = le(x,y)
      
      
      Following rules are (at-least) weakly oriented:
      if_mod(false(),s(x),s(y)) =  15 + 14*x + 7*x*y + 7*y  
                                >= 1 + x                    
                                =  s(x)                     
      
       if_mod(true(),s(x),s(y)) =  15 + 14*x + 7*x*y + 7*y  
                                >= 1 + 14*x + 7*x*y + y     
                                =  mod(minus(x,y),s(y))     
      
                      le(0(),y) =  0                        
                                >= 0                        
                                =  true()                   
      
                   le(s(x),0()) =  1 + x                    
                                >= 0                        
                                =  false()                  
      
                   minus(x,0()) =  x                        
                                >= x                        
                                =  x                        
      
               minus(s(x),s(y)) =  1 + x                    
                                >= x                        
                                =  minus(x,y)               
      
                     mod(0(),y) =  y                        
                                >= 0                        
                                =  0()                      
      
                  mod(s(x),0()) =  7 + 7*x                  
                                >= 0                        
                                =  0()                      
      
                 mod(s(x),s(y)) =  15 + 14*x + 7*x*y + 8*y  
                                >= 15 + 14*x + 7*x*y + 8*y  
                                =  if_mod(le(y,x),s(x),s(y))
      
*** 1.1.1.1 Progress [(O(1),O(1))]  ***
    Considered Problem:
      Strict DP Rules:
        
      Strict TRS Rules:
        
      Weak DP Rules:
        
      Weak TRS Rules:
        if_mod(false(),s(x),s(y)) -> s(x)
        if_mod(true(),s(x),s(y)) -> mod(minus(x,y),s(y))
        le(0(),y) -> true()
        le(s(x),0()) -> false()
        le(s(x),s(y)) -> le(x,y)
        minus(x,0()) -> x
        minus(s(x),s(y)) -> minus(x,y)
        mod(0(),y) -> 0()
        mod(s(x),0()) -> 0()
        mod(s(x),s(y)) -> if_mod(le(y,x),s(x),s(y))
      Signature:
        {if_mod/3,le/2,minus/2,mod/2} / {0/0,false/0,s/1,true/0}
      Obligation:
        Full
        basic terms: {if_mod,le,minus,mod}/{0,false,s,true}
    Applied Processor:
      EmptyProcessor
    Proof:
      The problem is already closed. The intended complexity is O(1).