*** 1 Progress [(O(1),O(n^2))]  ***
    Considered Problem:
      Strict DP Rules:
        
      Strict TRS Rules:
        -(x,0()) -> x
        -(0(),s(y)) -> 0()
        -(s(x),s(y)) -> -(x,y)
        div(x,0()) -> 0()
        div(0(),y) -> 0()
        div(s(x),s(y)) -> if(lt(x,y),0(),s(div(-(x,y),s(y))))
        if(false(),x,y) -> y
        if(true(),x,y) -> x
        lt(x,0()) -> false()
        lt(0(),s(y)) -> true()
        lt(s(x),s(y)) -> lt(x,y)
      Weak DP Rules:
        
      Weak TRS Rules:
        
      Signature:
        {-/2,div/2,if/3,lt/2} / {0/0,false/0,s/1,true/0}
      Obligation:
        Innermost
        basic terms: {-,div,if,lt}/{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,3},
          uargs(s) = {1}
        
        Following symbols are considered usable:
          {}
        TcT has computed the following interpretation:
              p(-) = [1] x1 + [1]                  
              p(0) = [4]                           
            p(div) = [1] x1 + [1] x2 + [7]         
          p(false) = [0]                           
             p(if) = [1] x1 + [1] x2 + [1] x3 + [0]
             p(lt) = [0]                           
              p(s) = [1] x1 + [0]                  
           p(true) = [0]                           
        
        Following rules are strictly oriented:
           -(x,0()) = [1] x + [1] 
                    > [1] x + [0] 
                    = x           
        
        -(0(),s(y)) = [5]         
                    > [4]         
                    = 0()         
        
         div(x,0()) = [1] x + [11]
                    > [4]         
                    = 0()         
        
         div(0(),y) = [1] y + [11]
                    > [4]         
                    = 0()         
        
        
        Following rules are (at-least) weakly oriented:
           -(s(x),s(y)) =  [1] x + [1]            
                        >= [1] x + [1]            
                        =  -(x,y)                 
        
         div(s(x),s(y)) =  [1] x + [1] y + [7]    
                        >= [1] x + [1] y + [12]   
                        =  if(lt(x,y)             
                             ,0()                 
                             ,s(div(-(x,y),s(y))))
        
        if(false(),x,y) =  [1] x + [1] y + [0]    
                        >= [1] y + [0]            
                        =  y                      
        
         if(true(),x,y) =  [1] x + [1] y + [0]    
                        >= [1] x + [0]            
                        =  x                      
        
              lt(x,0()) =  [0]                    
                        >= [0]                    
                        =  false()                
        
           lt(0(),s(y)) =  [0]                    
                        >= [0]                    
                        =  true()                 
        
          lt(s(x),s(y)) =  [0]                    
                        >= [0]                    
                        =  lt(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^2))]  ***
    Considered Problem:
      Strict DP Rules:
        
      Strict TRS Rules:
        -(s(x),s(y)) -> -(x,y)
        div(s(x),s(y)) -> if(lt(x,y),0(),s(div(-(x,y),s(y))))
        if(false(),x,y) -> y
        if(true(),x,y) -> x
        lt(x,0()) -> false()
        lt(0(),s(y)) -> true()
        lt(s(x),s(y)) -> lt(x,y)
      Weak DP Rules:
        
      Weak TRS Rules:
        -(x,0()) -> x
        -(0(),s(y)) -> 0()
        div(x,0()) -> 0()
        div(0(),y) -> 0()
      Signature:
        {-/2,div/2,if/3,lt/2} / {0/0,false/0,s/1,true/0}
      Obligation:
        Innermost
        basic terms: {-,div,if,lt}/{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,3},
          uargs(s) = {1}
        
        Following symbols are considered usable:
          {}
        TcT has computed the following interpretation:
              p(-) = [1] x1 + [0]                  
              p(0) = [0]                           
            p(div) = [1] x1 + [8] x2 + [1]         
          p(false) = [0]                           
             p(if) = [1] x1 + [1] x2 + [1] x3 + [9]
             p(lt) = [8]                           
              p(s) = [1] x1 + [0]                  
           p(true) = [7]                           
        
        Following rules are strictly oriented:
        if(false(),x,y) = [1] x + [1] y + [9] 
                        > [1] y + [0]         
                        = y                   
        
         if(true(),x,y) = [1] x + [1] y + [16]
                        > [1] x + [0]         
                        = x                   
        
              lt(x,0()) = [8]                 
                        > [0]                 
                        = false()             
        
           lt(0(),s(y)) = [8]                 
                        > [7]                 
                        = true()              
        
        
        Following rules are (at-least) weakly oriented:
              -(x,0()) =  [1] x + [0]            
                       >= [1] x + [0]            
                       =  x                      
        
           -(0(),s(y)) =  [0]                    
                       >= [0]                    
                       =  0()                    
        
          -(s(x),s(y)) =  [1] x + [0]            
                       >= [1] x + [0]            
                       =  -(x,y)                 
        
            div(x,0()) =  [1] x + [1]            
                       >= [0]                    
                       =  0()                    
        
            div(0(),y) =  [8] y + [1]            
                       >= [0]                    
                       =  0()                    
        
        div(s(x),s(y)) =  [1] x + [8] y + [1]    
                       >= [1] x + [8] y + [18]   
                       =  if(lt(x,y)             
                            ,0()                 
                            ,s(div(-(x,y),s(y))))
        
         lt(s(x),s(y)) =  [8]                    
                       >= [8]                    
                       =  lt(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^2))]  ***
    Considered Problem:
      Strict DP Rules:
        
      Strict TRS Rules:
        -(s(x),s(y)) -> -(x,y)
        div(s(x),s(y)) -> if(lt(x,y),0(),s(div(-(x,y),s(y))))
        lt(s(x),s(y)) -> lt(x,y)
      Weak DP Rules:
        
      Weak TRS Rules:
        -(x,0()) -> x
        -(0(),s(y)) -> 0()
        div(x,0()) -> 0()
        div(0(),y) -> 0()
        if(false(),x,y) -> y
        if(true(),x,y) -> x
        lt(x,0()) -> false()
        lt(0(),s(y)) -> true()
      Signature:
        {-/2,div/2,if/3,lt/2} / {0/0,false/0,s/1,true/0}
      Obligation:
        Innermost
        basic terms: {-,div,if,lt}/{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,3},
          uargs(s) = {1}
        
        Following symbols are considered usable:
          {}
        TcT has computed the following interpretation:
              p(-) = [1] x1 + [8]                  
              p(0) = [0]                           
            p(div) = [1] x1 + [1] x2 + [1]         
          p(false) = [0]                           
             p(if) = [1] x1 + [2] x2 + [1] x3 + [8]
             p(lt) = [0]                           
              p(s) = [1] x1 + [2]                  
           p(true) = [0]                           
        
        Following rules are strictly oriented:
        -(s(x),s(y)) = [1] x + [10]
                     > [1] x + [8] 
                     = -(x,y)      
        
        
        Following rules are (at-least) weakly oriented:
               -(x,0()) =  [1] x + [8]            
                        >= [1] x + [0]            
                        =  x                      
        
            -(0(),s(y)) =  [8]                    
                        >= [0]                    
                        =  0()                    
        
             div(x,0()) =  [1] x + [1]            
                        >= [0]                    
                        =  0()                    
        
             div(0(),y) =  [1] y + [1]            
                        >= [0]                    
                        =  0()                    
        
         div(s(x),s(y)) =  [1] x + [1] y + [5]    
                        >= [1] x + [1] y + [21]   
                        =  if(lt(x,y)             
                             ,0()                 
                             ,s(div(-(x,y),s(y))))
        
        if(false(),x,y) =  [2] x + [1] y + [8]    
                        >= [1] y + [0]            
                        =  y                      
        
         if(true(),x,y) =  [2] x + [1] y + [8]    
                        >= [1] x + [0]            
                        =  x                      
        
              lt(x,0()) =  [0]                    
                        >= [0]                    
                        =  false()                
        
           lt(0(),s(y)) =  [0]                    
                        >= [0]                    
                        =  true()                 
        
          lt(s(x),s(y)) =  [0]                    
                        >= [0]                    
                        =  lt(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^2))]  ***
    Considered Problem:
      Strict DP Rules:
        
      Strict TRS Rules:
        div(s(x),s(y)) -> if(lt(x,y),0(),s(div(-(x,y),s(y))))
        lt(s(x),s(y)) -> lt(x,y)
      Weak DP Rules:
        
      Weak TRS Rules:
        -(x,0()) -> x
        -(0(),s(y)) -> 0()
        -(s(x),s(y)) -> -(x,y)
        div(x,0()) -> 0()
        div(0(),y) -> 0()
        if(false(),x,y) -> y
        if(true(),x,y) -> x
        lt(x,0()) -> false()
        lt(0(),s(y)) -> true()
      Signature:
        {-/2,div/2,if/3,lt/2} / {0/0,false/0,s/1,true/0}
      Obligation:
        Innermost
        basic terms: {-,div,if,lt}/{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,3},
        uargs(s) = {1}
      
      Following symbols are considered usable:
        {-,div,if,lt}
      TcT has computed the following interpretation:
            p(-) = [1] x1 + [0]                  
            p(0) = [0]                           
          p(div) = [6] x1 + [0]                  
        p(false) = [1]                           
           p(if) = [2] x1 + [1] x2 + [1] x3 + [1]
           p(lt) = [8]                           
            p(s) = [1] x1 + [5]                  
         p(true) = [8]                           
      
      Following rules are strictly oriented:
      div(s(x),s(y)) = [6] x + [30]           
                     > [6] x + [22]           
                     = if(lt(x,y)             
                         ,0()                 
                         ,s(div(-(x,y),s(y))))
      
      
      Following rules are (at-least) weakly oriented:
             -(x,0()) =  [1] x + [0]         
                      >= [1] x + [0]         
                      =  x                   
      
          -(0(),s(y)) =  [0]                 
                      >= [0]                 
                      =  0()                 
      
         -(s(x),s(y)) =  [1] x + [5]         
                      >= [1] x + [0]         
                      =  -(x,y)              
      
           div(x,0()) =  [6] x + [0]         
                      >= [0]                 
                      =  0()                 
      
           div(0(),y) =  [0]                 
                      >= [0]                 
                      =  0()                 
      
      if(false(),x,y) =  [1] x + [1] y + [3] 
                      >= [1] y + [0]         
                      =  y                   
      
       if(true(),x,y) =  [1] x + [1] y + [17]
                      >= [1] x + [0]         
                      =  x                   
      
            lt(x,0()) =  [8]                 
                      >= [1]                 
                      =  false()             
      
         lt(0(),s(y)) =  [8]                 
                      >= [8]                 
                      =  true()              
      
        lt(s(x),s(y)) =  [8]                 
                      >= [8]                 
                      =  lt(x,y)             
      
*** 1.1.1.1.1 Progress [(O(1),O(n^2))]  ***
    Considered Problem:
      Strict DP Rules:
        
      Strict TRS Rules:
        lt(s(x),s(y)) -> lt(x,y)
      Weak DP Rules:
        
      Weak TRS Rules:
        -(x,0()) -> x
        -(0(),s(y)) -> 0()
        -(s(x),s(y)) -> -(x,y)
        div(x,0()) -> 0()
        div(0(),y) -> 0()
        div(s(x),s(y)) -> if(lt(x,y),0(),s(div(-(x,y),s(y))))
        if(false(),x,y) -> y
        if(true(),x,y) -> x
        lt(x,0()) -> false()
        lt(0(),s(y)) -> true()
      Signature:
        {-/2,div/2,if/3,lt/2} / {0/0,false/0,s/1,true/0}
      Obligation:
        Innermost
        basic terms: {-,div,if,lt}/{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(div) = {1},
        uargs(if) = {1,3},
        uargs(s) = {1}
      
      Following symbols are considered usable:
        {-,div,if,lt}
      TcT has computed the following interpretation:
            p(-) = x1          
            p(0) = 0           
          p(div) = x1 + x1^2   
        p(false) = 0           
           p(if) = x1 + x2 + x3
           p(lt) = x1          
            p(s) = 1 + x1      
         p(true) = 0           
      
      Following rules are strictly oriented:
      lt(s(x),s(y)) = 1 + x  
                    > x      
                    = lt(x,y)
      
      
      Following rules are (at-least) weakly oriented:
             -(x,0()) =  x                      
                      >= x                      
                      =  x                      
      
          -(0(),s(y)) =  0                      
                      >= 0                      
                      =  0()                    
      
         -(s(x),s(y)) =  1 + x                  
                      >= x                      
                      =  -(x,y)                 
      
           div(x,0()) =  x + x^2                
                      >= 0                      
                      =  0()                    
      
           div(0(),y) =  0                      
                      >= 0                      
                      =  0()                    
      
       div(s(x),s(y)) =  2 + 3*x + x^2          
                      >= 1 + 2*x + x^2          
                      =  if(lt(x,y)             
                           ,0()                 
                           ,s(div(-(x,y),s(y))))
      
      if(false(),x,y) =  x + y                  
                      >= y                      
                      =  y                      
      
       if(true(),x,y) =  x + y                  
                      >= x                      
                      =  x                      
      
            lt(x,0()) =  x                      
                      >= 0                      
                      =  false()                
      
         lt(0(),s(y)) =  0                      
                      >= 0                      
                      =  true()                 
      
*** 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:
        -(x,0()) -> x
        -(0(),s(y)) -> 0()
        -(s(x),s(y)) -> -(x,y)
        div(x,0()) -> 0()
        div(0(),y) -> 0()
        div(s(x),s(y)) -> if(lt(x,y),0(),s(div(-(x,y),s(y))))
        if(false(),x,y) -> y
        if(true(),x,y) -> x
        lt(x,0()) -> false()
        lt(0(),s(y)) -> true()
        lt(s(x),s(y)) -> lt(x,y)
      Signature:
        {-/2,div/2,if/3,lt/2} / {0/0,false/0,s/1,true/0}
      Obligation:
        Innermost
        basic terms: {-,div,if,lt}/{0,false,s,true}
    Applied Processor:
      EmptyProcessor
    Proof:
      The problem is already closed. The intended complexity is O(1).