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