*** 1 Progress [(O(1),O(n^1))]  ***
    Considered Problem:
      Strict DP Rules:
        
      Strict TRS Rules:
        f(x,Cons(x',xs)) -> f[Ite][False][Ite](lt0(x,Cons(Nil(),Nil())),x,Cons(x',xs))
        f(x,Nil()) -> Cons(Nil(),Cons(Nil(),Cons(Nil(),Cons(Nil(),Nil()))))
        g(x,Cons(x',xs)) -> g[Ite][False][Ite](lt0(x,Cons(Nil(),Nil())),x,Cons(x',xs))
        g(x,Nil()) -> Cons(Nil(),Cons(Nil(),Cons(Nil(),Cons(Nil(),Nil()))))
        goal(x,y) -> Cons(f(x,y),Cons(g(x,y),Nil()))
        lt0(x,Nil()) -> False()
        lt0(Cons(x',xs'),Cons(x,xs)) -> lt0(xs',xs)
        lt0(Nil(),Cons(x',xs)) -> True()
        notEmpty(Cons(x,xs)) -> True()
        notEmpty(Nil()) -> False()
        number4(n) -> Cons(Nil(),Cons(Nil(),Cons(Nil(),Cons(Nil(),Nil()))))
      Weak DP Rules:
        
      Weak TRS Rules:
        f[Ite][False][Ite](False(),Cons(x,xs),y) -> f(xs,Cons(Cons(Nil(),Nil()),y))
        f[Ite][False][Ite](True(),x',Cons(x,xs)) -> f(x',xs)
        g[Ite][False][Ite](False(),Cons(x,xs),y) -> g(xs,Cons(Cons(Nil(),Nil()),y))
        g[Ite][False][Ite](True(),x',Cons(x,xs)) -> g(x',xs)
      Signature:
        {f/2,f[Ite][False][Ite]/3,g/2,g[Ite][False][Ite]/3,goal/2,lt0/2,notEmpty/1,number4/1} / {Cons/2,False/0,Nil/0,True/0}
      Obligation:
        Innermost
        basic terms: {f,f[Ite][False][Ite],g,g[Ite][False][Ite],goal,lt0,notEmpty,number4}/{Cons,False,Nil,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(Cons) = {1,2},
          uargs(f[Ite][False][Ite]) = {1},
          uargs(g[Ite][False][Ite]) = {1}
        
        Following symbols are considered usable:
          {}
        TcT has computed the following interpretation:
                        p(Cons) = [1] x1 + [1] x2 + [2]
                       p(False) = [4]                  
                         p(Nil) = [1]                  
                        p(True) = [6]                  
                           p(f) = [1] x1 + [6]         
          p(f[Ite][False][Ite]) = [1] x1 + [1] x2 + [0]
                           p(g) = [2]                  
          p(g[Ite][False][Ite]) = [1] x1 + [0]         
                        p(goal) = [4] x1 + [1] x2 + [0]
                         p(lt0) = [0]                  
                    p(notEmpty) = [4] x1 + [0]         
                     p(number4) = [0]                  
        
        Following rules are strictly oriented:
            f(x,Cons(x',xs)) = [1] x + [6]                              
                             > [1] x + [0]                              
                             = f[Ite][False][Ite](lt0(x                 
                                                     ,Cons(Nil(),Nil()))
                                                 ,x                     
                                                 ,Cons(x',xs))          
        
            g(x,Cons(x',xs)) = [2]                                      
                             > [0]                                      
                             = g[Ite][False][Ite](lt0(x                 
                                                     ,Cons(Nil(),Nil()))
                                                 ,x                     
                                                 ,Cons(x',xs))          
        
        notEmpty(Cons(x,xs)) = [4] x + [4] xs + [8]                     
                             > [6]                                      
                             = True()                                   
        
        
        Following rules are (at-least) weakly oriented:
                            f(x,Nil()) =  [1] x + [6]                              
                                       >= [13]                                     
                                       =  Cons(Nil()                               
                                              ,Cons(Nil()                          
                                                   ,Cons(Nil(),Cons(Nil(),Nil()))))
        
            f[Ite][False][Ite](False() =  [1] x + [1] xs + [6]                     
                           ,Cons(x,xs)                                             
                                   ,y)                                             
                                       >= [1] xs + [6]                             
                                       =  f(xs,Cons(Cons(Nil(),Nil()),y))          
        
             f[Ite][False][Ite](True() =  [1] x' + [6]                             
                                   ,x'                                             
                          ,Cons(x,xs))                                             
                                       >= [1] x' + [6]                             
                                       =  f(x',xs)                                 
        
                            g(x,Nil()) =  [2]                                      
                                       >= [13]                                     
                                       =  Cons(Nil()                               
                                              ,Cons(Nil()                          
                                                   ,Cons(Nil(),Cons(Nil(),Nil()))))
        
            g[Ite][False][Ite](False() =  [4]                                      
                           ,Cons(x,xs)                                             
                                   ,y)                                             
                                       >= [2]                                      
                                       =  g(xs,Cons(Cons(Nil(),Nil()),y))          
        
             g[Ite][False][Ite](True() =  [6]                                      
                                   ,x'                                             
                          ,Cons(x,xs))                                             
                                       >= [2]                                      
                                       =  g(x',xs)                                 
        
                             goal(x,y) =  [4] x + [1] y + [0]                      
                                       >= [1] x + [13]                             
                                       =  Cons(f(x,y),Cons(g(x,y),Nil()))          
        
                          lt0(x,Nil()) =  [0]                                      
                                       >= [4]                                      
                                       =  False()                                  
        
          lt0(Cons(x',xs'),Cons(x,xs)) =  [0]                                      
                                       >= [0]                                      
                                       =  lt0(xs',xs)                              
        
                lt0(Nil(),Cons(x',xs)) =  [0]                                      
                                       >= [6]                                      
                                       =  True()                                   
        
                       notEmpty(Nil()) =  [4]                                      
                                       >= [4]                                      
                                       =  False()                                  
        
                            number4(n) =  [0]                                      
                                       >= [13]                                     
                                       =  Cons(Nil()                               
                                              ,Cons(Nil()                          
                                                   ,Cons(Nil(),Cons(Nil(),Nil()))))
        
      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:
        f(x,Nil()) -> Cons(Nil(),Cons(Nil(),Cons(Nil(),Cons(Nil(),Nil()))))
        g(x,Nil()) -> Cons(Nil(),Cons(Nil(),Cons(Nil(),Cons(Nil(),Nil()))))
        goal(x,y) -> Cons(f(x,y),Cons(g(x,y),Nil()))
        lt0(x,Nil()) -> False()
        lt0(Cons(x',xs'),Cons(x,xs)) -> lt0(xs',xs)
        lt0(Nil(),Cons(x',xs)) -> True()
        notEmpty(Nil()) -> False()
        number4(n) -> Cons(Nil(),Cons(Nil(),Cons(Nil(),Cons(Nil(),Nil()))))
      Weak DP Rules:
        
      Weak TRS Rules:
        f(x,Cons(x',xs)) -> f[Ite][False][Ite](lt0(x,Cons(Nil(),Nil())),x,Cons(x',xs))
        f[Ite][False][Ite](False(),Cons(x,xs),y) -> f(xs,Cons(Cons(Nil(),Nil()),y))
        f[Ite][False][Ite](True(),x',Cons(x,xs)) -> f(x',xs)
        g(x,Cons(x',xs)) -> g[Ite][False][Ite](lt0(x,Cons(Nil(),Nil())),x,Cons(x',xs))
        g[Ite][False][Ite](False(),Cons(x,xs),y) -> g(xs,Cons(Cons(Nil(),Nil()),y))
        g[Ite][False][Ite](True(),x',Cons(x,xs)) -> g(x',xs)
        notEmpty(Cons(x,xs)) -> True()
      Signature:
        {f/2,f[Ite][False][Ite]/3,g/2,g[Ite][False][Ite]/3,goal/2,lt0/2,notEmpty/1,number4/1} / {Cons/2,False/0,Nil/0,True/0}
      Obligation:
        Innermost
        basic terms: {f,f[Ite][False][Ite],g,g[Ite][False][Ite],goal,lt0,notEmpty,number4}/{Cons,False,Nil,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(Cons) = {1,2},
          uargs(f[Ite][False][Ite]) = {1},
          uargs(g[Ite][False][Ite]) = {1}
        
        Following symbols are considered usable:
          {}
        TcT has computed the following interpretation:
                        p(Cons) = [1] x1 + [1] x2 + [0]         
                       p(False) = [7]                           
                         p(Nil) = [2]                           
                        p(True) = [2]                           
                           p(f) = [3] x1 + [1] x2 + [1]         
          p(f[Ite][False][Ite]) = [1] x1 + [3] x2 + [1] x3 + [0]
                           p(g) = [3]                           
          p(g[Ite][False][Ite]) = [1] x1 + [2]                  
                        p(goal) = [4] x1 + [1] x2 + [7]         
                         p(lt0) = [0]                           
                    p(notEmpty) = [2] x1 + [5]                  
                     p(number4) = [2]                           
        
        Following rules are strictly oriented:
              goal(x,y) = [4] x + [1] y + [7]            
                        > [3] x + [1] y + [6]            
                        = Cons(f(x,y),Cons(g(x,y),Nil()))
        
        notEmpty(Nil()) = [9]                            
                        > [7]                            
                        = False()                        
        
        
        Following rules are (at-least) weakly oriented:
                      f(x,Cons(x',xs)) =  [3] x + [1] x' + [1] xs + [1]            
                                       >= [3] x + [1] x' + [1] xs + [0]            
                                       =  f[Ite][False][Ite](lt0(x                 
                                                                ,Cons(Nil(),Nil()))
                                                            ,x                     
                                                            ,Cons(x',xs))          
        
                            f(x,Nil()) =  [3] x + [3]                              
                                       >= [10]                                     
                                       =  Cons(Nil()                               
                                              ,Cons(Nil()                          
                                                   ,Cons(Nil(),Cons(Nil(),Nil()))))
        
            f[Ite][False][Ite](False() =  [3] x + [3] xs + [1] y + [7]             
                           ,Cons(x,xs)                                             
                                   ,y)                                             
                                       >= [3] xs + [1] y + [5]                     
                                       =  f(xs,Cons(Cons(Nil(),Nil()),y))          
        
             f[Ite][False][Ite](True() =  [1] x + [3] x' + [1] xs + [2]            
                                   ,x'                                             
                          ,Cons(x,xs))                                             
                                       >= [3] x' + [1] xs + [1]                    
                                       =  f(x',xs)                                 
        
                      g(x,Cons(x',xs)) =  [3]                                      
                                       >= [2]                                      
                                       =  g[Ite][False][Ite](lt0(x                 
                                                                ,Cons(Nil(),Nil()))
                                                            ,x                     
                                                            ,Cons(x',xs))          
        
                            g(x,Nil()) =  [3]                                      
                                       >= [10]                                     
                                       =  Cons(Nil()                               
                                              ,Cons(Nil()                          
                                                   ,Cons(Nil(),Cons(Nil(),Nil()))))
        
            g[Ite][False][Ite](False() =  [9]                                      
                           ,Cons(x,xs)                                             
                                   ,y)                                             
                                       >= [3]                                      
                                       =  g(xs,Cons(Cons(Nil(),Nil()),y))          
        
             g[Ite][False][Ite](True() =  [4]                                      
                                   ,x'                                             
                          ,Cons(x,xs))                                             
                                       >= [3]                                      
                                       =  g(x',xs)                                 
        
                          lt0(x,Nil()) =  [0]                                      
                                       >= [7]                                      
                                       =  False()                                  
        
          lt0(Cons(x',xs'),Cons(x,xs)) =  [0]                                      
                                       >= [0]                                      
                                       =  lt0(xs',xs)                              
        
                lt0(Nil(),Cons(x',xs)) =  [0]                                      
                                       >= [2]                                      
                                       =  True()                                   
        
                  notEmpty(Cons(x,xs)) =  [2] x + [2] xs + [5]                     
                                       >= [2]                                      
                                       =  True()                                   
        
                            number4(n) =  [2]                                      
                                       >= [10]                                     
                                       =  Cons(Nil()                               
                                              ,Cons(Nil()                          
                                                   ,Cons(Nil(),Cons(Nil(),Nil()))))
        
      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:
        f(x,Nil()) -> Cons(Nil(),Cons(Nil(),Cons(Nil(),Cons(Nil(),Nil()))))
        g(x,Nil()) -> Cons(Nil(),Cons(Nil(),Cons(Nil(),Cons(Nil(),Nil()))))
        lt0(x,Nil()) -> False()
        lt0(Cons(x',xs'),Cons(x,xs)) -> lt0(xs',xs)
        lt0(Nil(),Cons(x',xs)) -> True()
        number4(n) -> Cons(Nil(),Cons(Nil(),Cons(Nil(),Cons(Nil(),Nil()))))
      Weak DP Rules:
        
      Weak TRS Rules:
        f(x,Cons(x',xs)) -> f[Ite][False][Ite](lt0(x,Cons(Nil(),Nil())),x,Cons(x',xs))
        f[Ite][False][Ite](False(),Cons(x,xs),y) -> f(xs,Cons(Cons(Nil(),Nil()),y))
        f[Ite][False][Ite](True(),x',Cons(x,xs)) -> f(x',xs)
        g(x,Cons(x',xs)) -> g[Ite][False][Ite](lt0(x,Cons(Nil(),Nil())),x,Cons(x',xs))
        g[Ite][False][Ite](False(),Cons(x,xs),y) -> g(xs,Cons(Cons(Nil(),Nil()),y))
        g[Ite][False][Ite](True(),x',Cons(x,xs)) -> g(x',xs)
        goal(x,y) -> Cons(f(x,y),Cons(g(x,y),Nil()))
        notEmpty(Cons(x,xs)) -> True()
        notEmpty(Nil()) -> False()
      Signature:
        {f/2,f[Ite][False][Ite]/3,g/2,g[Ite][False][Ite]/3,goal/2,lt0/2,notEmpty/1,number4/1} / {Cons/2,False/0,Nil/0,True/0}
      Obligation:
        Innermost
        basic terms: {f,f[Ite][False][Ite],g,g[Ite][False][Ite],goal,lt0,notEmpty,number4}/{Cons,False,Nil,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(Cons) = {1,2},
          uargs(f[Ite][False][Ite]) = {1},
          uargs(g[Ite][False][Ite]) = {1}
        
        Following symbols are considered usable:
          {}
        TcT has computed the following interpretation:
                        p(Cons) = [1] x1 + [1] x2 + [0]
                       p(False) = [0]                  
                         p(Nil) = [0]                  
                        p(True) = [0]                  
                           p(f) = [1] x2 + [5]         
          p(f[Ite][False][Ite]) = [1] x1 + [1] x3 + [5]
                           p(g) = [0]                  
          p(g[Ite][False][Ite]) = [1] x1 + [0]         
                        p(goal) = [1] x2 + [5]         
                         p(lt0) = [1] x2 + [0]         
                    p(notEmpty) = [0]                  
                     p(number4) = [1] x1 + [1]         
        
        Following rules are strictly oriented:
        f(x,Nil()) = [5]                                      
                   > [0]                                      
                   = Cons(Nil()                               
                         ,Cons(Nil()                          
                              ,Cons(Nil(),Cons(Nil(),Nil()))))
        
        number4(n) = [1] n + [1]                              
                   > [0]                                      
                   = Cons(Nil()                               
                         ,Cons(Nil()                          
                              ,Cons(Nil(),Cons(Nil(),Nil()))))
        
        
        Following rules are (at-least) weakly oriented:
                      f(x,Cons(x',xs)) =  [1] x' + [1] xs + [5]                    
                                       >= [1] x' + [1] xs + [5]                    
                                       =  f[Ite][False][Ite](lt0(x                 
                                                                ,Cons(Nil(),Nil()))
                                                            ,x                     
                                                            ,Cons(x',xs))          
        
            f[Ite][False][Ite](False() =  [1] y + [5]                              
                           ,Cons(x,xs)                                             
                                   ,y)                                             
                                       >= [1] y + [5]                              
                                       =  f(xs,Cons(Cons(Nil(),Nil()),y))          
        
             f[Ite][False][Ite](True() =  [1] x + [1] xs + [5]                     
                                   ,x'                                             
                          ,Cons(x,xs))                                             
                                       >= [1] xs + [5]                             
                                       =  f(x',xs)                                 
        
                      g(x,Cons(x',xs)) =  [0]                                      
                                       >= [0]                                      
                                       =  g[Ite][False][Ite](lt0(x                 
                                                                ,Cons(Nil(),Nil()))
                                                            ,x                     
                                                            ,Cons(x',xs))          
        
                            g(x,Nil()) =  [0]                                      
                                       >= [0]                                      
                                       =  Cons(Nil()                               
                                              ,Cons(Nil()                          
                                                   ,Cons(Nil(),Cons(Nil(),Nil()))))
        
            g[Ite][False][Ite](False() =  [0]                                      
                           ,Cons(x,xs)                                             
                                   ,y)                                             
                                       >= [0]                                      
                                       =  g(xs,Cons(Cons(Nil(),Nil()),y))          
        
             g[Ite][False][Ite](True() =  [0]                                      
                                   ,x'                                             
                          ,Cons(x,xs))                                             
                                       >= [0]                                      
                                       =  g(x',xs)                                 
        
                             goal(x,y) =  [1] y + [5]                              
                                       >= [1] y + [5]                              
                                       =  Cons(f(x,y),Cons(g(x,y),Nil()))          
        
                          lt0(x,Nil()) =  [0]                                      
                                       >= [0]                                      
                                       =  False()                                  
        
          lt0(Cons(x',xs'),Cons(x,xs)) =  [1] x + [1] xs + [0]                     
                                       >= [1] xs + [0]                             
                                       =  lt0(xs',xs)                              
        
                lt0(Nil(),Cons(x',xs)) =  [1] x' + [1] xs + [0]                    
                                       >= [0]                                      
                                       =  True()                                   
        
                  notEmpty(Cons(x,xs)) =  [0]                                      
                                       >= [0]                                      
                                       =  True()                                   
        
                       notEmpty(Nil()) =  [0]                                      
                                       >= [0]                                      
                                       =  False()                                  
        
      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:
        g(x,Nil()) -> Cons(Nil(),Cons(Nil(),Cons(Nil(),Cons(Nil(),Nil()))))
        lt0(x,Nil()) -> False()
        lt0(Cons(x',xs'),Cons(x,xs)) -> lt0(xs',xs)
        lt0(Nil(),Cons(x',xs)) -> True()
      Weak DP Rules:
        
      Weak TRS Rules:
        f(x,Cons(x',xs)) -> f[Ite][False][Ite](lt0(x,Cons(Nil(),Nil())),x,Cons(x',xs))
        f(x,Nil()) -> Cons(Nil(),Cons(Nil(),Cons(Nil(),Cons(Nil(),Nil()))))
        f[Ite][False][Ite](False(),Cons(x,xs),y) -> f(xs,Cons(Cons(Nil(),Nil()),y))
        f[Ite][False][Ite](True(),x',Cons(x,xs)) -> f(x',xs)
        g(x,Cons(x',xs)) -> g[Ite][False][Ite](lt0(x,Cons(Nil(),Nil())),x,Cons(x',xs))
        g[Ite][False][Ite](False(),Cons(x,xs),y) -> g(xs,Cons(Cons(Nil(),Nil()),y))
        g[Ite][False][Ite](True(),x',Cons(x,xs)) -> g(x',xs)
        goal(x,y) -> Cons(f(x,y),Cons(g(x,y),Nil()))
        notEmpty(Cons(x,xs)) -> True()
        notEmpty(Nil()) -> False()
        number4(n) -> Cons(Nil(),Cons(Nil(),Cons(Nil(),Cons(Nil(),Nil()))))
      Signature:
        {f/2,f[Ite][False][Ite]/3,g/2,g[Ite][False][Ite]/3,goal/2,lt0/2,notEmpty/1,number4/1} / {Cons/2,False/0,Nil/0,True/0}
      Obligation:
        Innermost
        basic terms: {f,f[Ite][False][Ite],g,g[Ite][False][Ite],goal,lt0,notEmpty,number4}/{Cons,False,Nil,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(Cons) = {1,2},
          uargs(f[Ite][False][Ite]) = {1},
          uargs(g[Ite][False][Ite]) = {1}
        
        Following symbols are considered usable:
          {}
        TcT has computed the following interpretation:
                        p(Cons) = [1] x1 + [1] x2 + [0]
                       p(False) = [0]                  
                         p(Nil) = [0]                  
                        p(True) = [0]                  
                           p(f) = [1]                  
          p(f[Ite][False][Ite]) = [1] x1 + [1]         
                           p(g) = [1]                  
          p(g[Ite][False][Ite]) = [1] x1 + [1]         
                        p(goal) = [3] x1 + [4]         
                         p(lt0) = [1] x2 + [0]         
                    p(notEmpty) = [1]                  
                     p(number4) = [1] x1 + [5]         
        
        Following rules are strictly oriented:
        g(x,Nil()) = [1]                                      
                   > [0]                                      
                   = Cons(Nil()                               
                         ,Cons(Nil()                          
                              ,Cons(Nil(),Cons(Nil(),Nil()))))
        
        
        Following rules are (at-least) weakly oriented:
                      f(x,Cons(x',xs)) =  [1]                                      
                                       >= [1]                                      
                                       =  f[Ite][False][Ite](lt0(x                 
                                                                ,Cons(Nil(),Nil()))
                                                            ,x                     
                                                            ,Cons(x',xs))          
        
                            f(x,Nil()) =  [1]                                      
                                       >= [0]                                      
                                       =  Cons(Nil()                               
                                              ,Cons(Nil()                          
                                                   ,Cons(Nil(),Cons(Nil(),Nil()))))
        
            f[Ite][False][Ite](False() =  [1]                                      
                           ,Cons(x,xs)                                             
                                   ,y)                                             
                                       >= [1]                                      
                                       =  f(xs,Cons(Cons(Nil(),Nil()),y))          
        
             f[Ite][False][Ite](True() =  [1]                                      
                                   ,x'                                             
                          ,Cons(x,xs))                                             
                                       >= [1]                                      
                                       =  f(x',xs)                                 
        
                      g(x,Cons(x',xs)) =  [1]                                      
                                       >= [1]                                      
                                       =  g[Ite][False][Ite](lt0(x                 
                                                                ,Cons(Nil(),Nil()))
                                                            ,x                     
                                                            ,Cons(x',xs))          
        
            g[Ite][False][Ite](False() =  [1]                                      
                           ,Cons(x,xs)                                             
                                   ,y)                                             
                                       >= [1]                                      
                                       =  g(xs,Cons(Cons(Nil(),Nil()),y))          
        
             g[Ite][False][Ite](True() =  [1]                                      
                                   ,x'                                             
                          ,Cons(x,xs))                                             
                                       >= [1]                                      
                                       =  g(x',xs)                                 
        
                             goal(x,y) =  [3] x + [4]                              
                                       >= [2]                                      
                                       =  Cons(f(x,y),Cons(g(x,y),Nil()))          
        
                          lt0(x,Nil()) =  [0]                                      
                                       >= [0]                                      
                                       =  False()                                  
        
          lt0(Cons(x',xs'),Cons(x,xs)) =  [1] x + [1] xs + [0]                     
                                       >= [1] xs + [0]                             
                                       =  lt0(xs',xs)                              
        
                lt0(Nil(),Cons(x',xs)) =  [1] x' + [1] xs + [0]                    
                                       >= [0]                                      
                                       =  True()                                   
        
                  notEmpty(Cons(x,xs)) =  [1]                                      
                                       >= [0]                                      
                                       =  True()                                   
        
                       notEmpty(Nil()) =  [1]                                      
                                       >= [0]                                      
                                       =  False()                                  
        
                            number4(n) =  [1] n + [5]                              
                                       >= [0]                                      
                                       =  Cons(Nil()                               
                                              ,Cons(Nil()                          
                                                   ,Cons(Nil(),Cons(Nil(),Nil()))))
        
      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:
        lt0(x,Nil()) -> False()
        lt0(Cons(x',xs'),Cons(x,xs)) -> lt0(xs',xs)
        lt0(Nil(),Cons(x',xs)) -> True()
      Weak DP Rules:
        
      Weak TRS Rules:
        f(x,Cons(x',xs)) -> f[Ite][False][Ite](lt0(x,Cons(Nil(),Nil())),x,Cons(x',xs))
        f(x,Nil()) -> Cons(Nil(),Cons(Nil(),Cons(Nil(),Cons(Nil(),Nil()))))
        f[Ite][False][Ite](False(),Cons(x,xs),y) -> f(xs,Cons(Cons(Nil(),Nil()),y))
        f[Ite][False][Ite](True(),x',Cons(x,xs)) -> f(x',xs)
        g(x,Cons(x',xs)) -> g[Ite][False][Ite](lt0(x,Cons(Nil(),Nil())),x,Cons(x',xs))
        g(x,Nil()) -> Cons(Nil(),Cons(Nil(),Cons(Nil(),Cons(Nil(),Nil()))))
        g[Ite][False][Ite](False(),Cons(x,xs),y) -> g(xs,Cons(Cons(Nil(),Nil()),y))
        g[Ite][False][Ite](True(),x',Cons(x,xs)) -> g(x',xs)
        goal(x,y) -> Cons(f(x,y),Cons(g(x,y),Nil()))
        notEmpty(Cons(x,xs)) -> True()
        notEmpty(Nil()) -> False()
        number4(n) -> Cons(Nil(),Cons(Nil(),Cons(Nil(),Cons(Nil(),Nil()))))
      Signature:
        {f/2,f[Ite][False][Ite]/3,g/2,g[Ite][False][Ite]/3,goal/2,lt0/2,notEmpty/1,number4/1} / {Cons/2,False/0,Nil/0,True/0}
      Obligation:
        Innermost
        basic terms: {f,f[Ite][False][Ite],g,g[Ite][False][Ite],goal,lt0,notEmpty,number4}/{Cons,False,Nil,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(Cons) = {1,2},
        uargs(f[Ite][False][Ite]) = {1},
        uargs(g[Ite][False][Ite]) = {1}
      
      Following symbols are considered usable:
        {f,f[Ite][False][Ite],g,g[Ite][False][Ite],goal,lt0,notEmpty,number4}
      TcT has computed the following interpretation:
                      p(Cons) = [1] x1 + [1] x2 + [1]         
                     p(False) = [0]                           
                       p(Nil) = [0]                           
                      p(True) = [2]                           
                         p(f) = [4] x1 + [1] x2 + [5]         
        p(f[Ite][False][Ite]) = [1] x1 + [4] x2 + [1] x3 + [3]
                         p(g) = [8] x1 + [4]                  
        p(g[Ite][False][Ite]) = [2] x1 + [8] x2 + [0]         
                      p(goal) = [13] x1 + [1] x2 + [11]       
                       p(lt0) = [2] x2 + [0]                  
                  p(notEmpty) = [13] x1 + [4]                 
                   p(number4) = [9]                           
      
      Following rules are strictly oriented:
      lt0(Cons(x',xs'),Cons(x,xs)) = [2] x + [2] xs + [2]
                                   > [2] xs + [0]        
                                   = lt0(xs',xs)         
      
      
      Following rules are (at-least) weakly oriented:
                    f(x,Cons(x',xs)) =  [4] x + [1] x' + [1] xs + [6]            
                                     >= [4] x + [1] x' + [1] xs + [6]            
                                     =  f[Ite][False][Ite](lt0(x                 
                                                              ,Cons(Nil(),Nil()))
                                                          ,x                     
                                                          ,Cons(x',xs))          
      
                          f(x,Nil()) =  [4] x + [5]                              
                                     >= [4]                                      
                                     =  Cons(Nil()                               
                                            ,Cons(Nil()                          
                                                 ,Cons(Nil(),Cons(Nil(),Nil()))))
      
          f[Ite][False][Ite](False() =  [4] x + [4] xs + [1] y + [7]             
                         ,Cons(x,xs)                                             
                                 ,y)                                             
                                     >= [4] xs + [1] y + [7]                     
                                     =  f(xs,Cons(Cons(Nil(),Nil()),y))          
      
           f[Ite][False][Ite](True() =  [1] x + [4] x' + [1] xs + [6]            
                                 ,x'                                             
                        ,Cons(x,xs))                                             
                                     >= [4] x' + [1] xs + [5]                    
                                     =  f(x',xs)                                 
      
                    g(x,Cons(x',xs)) =  [8] x + [4]                              
                                     >= [8] x + [4]                              
                                     =  g[Ite][False][Ite](lt0(x                 
                                                              ,Cons(Nil(),Nil()))
                                                          ,x                     
                                                          ,Cons(x',xs))          
      
                          g(x,Nil()) =  [8] x + [4]                              
                                     >= [4]                                      
                                     =  Cons(Nil()                               
                                            ,Cons(Nil()                          
                                                 ,Cons(Nil(),Cons(Nil(),Nil()))))
      
          g[Ite][False][Ite](False() =  [8] x + [8] xs + [8]                     
                         ,Cons(x,xs)                                             
                                 ,y)                                             
                                     >= [8] xs + [4]                             
                                     =  g(xs,Cons(Cons(Nil(),Nil()),y))          
      
           g[Ite][False][Ite](True() =  [8] x' + [4]                             
                                 ,x'                                             
                        ,Cons(x,xs))                                             
                                     >= [8] x' + [4]                             
                                     =  g(x',xs)                                 
      
                           goal(x,y) =  [13] x + [1] y + [11]                    
                                     >= [12] x + [1] y + [11]                    
                                     =  Cons(f(x,y),Cons(g(x,y),Nil()))          
      
                        lt0(x,Nil()) =  [0]                                      
                                     >= [0]                                      
                                     =  False()                                  
      
              lt0(Nil(),Cons(x',xs)) =  [2] x' + [2] xs + [2]                    
                                     >= [2]                                      
                                     =  True()                                   
      
                notEmpty(Cons(x,xs)) =  [13] x + [13] xs + [17]                  
                                     >= [2]                                      
                                     =  True()                                   
      
                     notEmpty(Nil()) =  [4]                                      
                                     >= [0]                                      
                                     =  False()                                  
      
                          number4(n) =  [9]                                      
                                     >= [4]                                      
                                     =  Cons(Nil()                               
                                            ,Cons(Nil()                          
                                                 ,Cons(Nil(),Cons(Nil(),Nil()))))
      
*** 1.1.1.1.1.1 Progress [(O(1),O(n^1))]  ***
    Considered Problem:
      Strict DP Rules:
        
      Strict TRS Rules:
        lt0(x,Nil()) -> False()
        lt0(Nil(),Cons(x',xs)) -> True()
      Weak DP Rules:
        
      Weak TRS Rules:
        f(x,Cons(x',xs)) -> f[Ite][False][Ite](lt0(x,Cons(Nil(),Nil())),x,Cons(x',xs))
        f(x,Nil()) -> Cons(Nil(),Cons(Nil(),Cons(Nil(),Cons(Nil(),Nil()))))
        f[Ite][False][Ite](False(),Cons(x,xs),y) -> f(xs,Cons(Cons(Nil(),Nil()),y))
        f[Ite][False][Ite](True(),x',Cons(x,xs)) -> f(x',xs)
        g(x,Cons(x',xs)) -> g[Ite][False][Ite](lt0(x,Cons(Nil(),Nil())),x,Cons(x',xs))
        g(x,Nil()) -> Cons(Nil(),Cons(Nil(),Cons(Nil(),Cons(Nil(),Nil()))))
        g[Ite][False][Ite](False(),Cons(x,xs),y) -> g(xs,Cons(Cons(Nil(),Nil()),y))
        g[Ite][False][Ite](True(),x',Cons(x,xs)) -> g(x',xs)
        goal(x,y) -> Cons(f(x,y),Cons(g(x,y),Nil()))
        lt0(Cons(x',xs'),Cons(x,xs)) -> lt0(xs',xs)
        notEmpty(Cons(x,xs)) -> True()
        notEmpty(Nil()) -> False()
        number4(n) -> Cons(Nil(),Cons(Nil(),Cons(Nil(),Cons(Nil(),Nil()))))
      Signature:
        {f/2,f[Ite][False][Ite]/3,g/2,g[Ite][False][Ite]/3,goal/2,lt0/2,notEmpty/1,number4/1} / {Cons/2,False/0,Nil/0,True/0}
      Obligation:
        Innermost
        basic terms: {f,f[Ite][False][Ite],g,g[Ite][False][Ite],goal,lt0,notEmpty,number4}/{Cons,False,Nil,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(Cons) = {1,2},
        uargs(f[Ite][False][Ite]) = {1},
        uargs(g[Ite][False][Ite]) = {1}
      
      Following symbols are considered usable:
        {f,f[Ite][False][Ite],g,g[Ite][False][Ite],goal,lt0,notEmpty,number4}
      TcT has computed the following interpretation:
                      p(Cons) = [1] x1 + [1] x2 + [1]  
                     p(False) = [0]                    
                       p(Nil) = [0]                    
                      p(True) = [4]                    
                         p(f) = [8] x1 + [5]           
        p(f[Ite][False][Ite]) = [1] x1 + [8] x2 + [1]  
                         p(g) = [4] x1 + [4]           
        p(g[Ite][False][Ite]) = [1] x1 + [4] x2 + [0]  
                      p(goal) = [12] x1 + [4] x2 + [11]
                       p(lt0) = [4]                    
                  p(notEmpty) = [10] x1 + [4]          
                   p(number4) = [4] x1 + [4]           
      
      Following rules are strictly oriented:
      lt0(x,Nil()) = [4]    
                   > [0]    
                   = False()
      
      
      Following rules are (at-least) weakly oriented:
                    f(x,Cons(x',xs)) =  [8] x + [5]                              
                                     >= [8] x + [5]                              
                                     =  f[Ite][False][Ite](lt0(x                 
                                                              ,Cons(Nil(),Nil()))
                                                          ,x                     
                                                          ,Cons(x',xs))          
      
                          f(x,Nil()) =  [8] x + [5]                              
                                     >= [4]                                      
                                     =  Cons(Nil()                               
                                            ,Cons(Nil()                          
                                                 ,Cons(Nil(),Cons(Nil(),Nil()))))
      
          f[Ite][False][Ite](False() =  [8] x + [8] xs + [9]                     
                         ,Cons(x,xs)                                             
                                 ,y)                                             
                                     >= [8] xs + [5]                             
                                     =  f(xs,Cons(Cons(Nil(),Nil()),y))          
      
           f[Ite][False][Ite](True() =  [8] x' + [5]                             
                                 ,x'                                             
                        ,Cons(x,xs))                                             
                                     >= [8] x' + [5]                             
                                     =  f(x',xs)                                 
      
                    g(x,Cons(x',xs)) =  [4] x + [4]                              
                                     >= [4] x + [4]                              
                                     =  g[Ite][False][Ite](lt0(x                 
                                                              ,Cons(Nil(),Nil()))
                                                          ,x                     
                                                          ,Cons(x',xs))          
      
                          g(x,Nil()) =  [4] x + [4]                              
                                     >= [4]                                      
                                     =  Cons(Nil()                               
                                            ,Cons(Nil()                          
                                                 ,Cons(Nil(),Cons(Nil(),Nil()))))
      
          g[Ite][False][Ite](False() =  [4] x + [4] xs + [4]                     
                         ,Cons(x,xs)                                             
                                 ,y)                                             
                                     >= [4] xs + [4]                             
                                     =  g(xs,Cons(Cons(Nil(),Nil()),y))          
      
           g[Ite][False][Ite](True() =  [4] x' + [4]                             
                                 ,x'                                             
                        ,Cons(x,xs))                                             
                                     >= [4] x' + [4]                             
                                     =  g(x',xs)                                 
      
                           goal(x,y) =  [12] x + [4] y + [11]                    
                                     >= [12] x + [11]                            
                                     =  Cons(f(x,y),Cons(g(x,y),Nil()))          
      
        lt0(Cons(x',xs'),Cons(x,xs)) =  [4]                                      
                                     >= [4]                                      
                                     =  lt0(xs',xs)                              
      
              lt0(Nil(),Cons(x',xs)) =  [4]                                      
                                     >= [4]                                      
                                     =  True()                                   
      
                notEmpty(Cons(x,xs)) =  [10] x + [10] xs + [14]                  
                                     >= [4]                                      
                                     =  True()                                   
      
                     notEmpty(Nil()) =  [4]                                      
                                     >= [0]                                      
                                     =  False()                                  
      
                          number4(n) =  [4] n + [4]                              
                                     >= [4]                                      
                                     =  Cons(Nil()                               
                                            ,Cons(Nil()                          
                                                 ,Cons(Nil(),Cons(Nil(),Nil()))))
      
*** 1.1.1.1.1.1.1 Progress [(O(1),O(n^1))]  ***
    Considered Problem:
      Strict DP Rules:
        
      Strict TRS Rules:
        lt0(Nil(),Cons(x',xs)) -> True()
      Weak DP Rules:
        
      Weak TRS Rules:
        f(x,Cons(x',xs)) -> f[Ite][False][Ite](lt0(x,Cons(Nil(),Nil())),x,Cons(x',xs))
        f(x,Nil()) -> Cons(Nil(),Cons(Nil(),Cons(Nil(),Cons(Nil(),Nil()))))
        f[Ite][False][Ite](False(),Cons(x,xs),y) -> f(xs,Cons(Cons(Nil(),Nil()),y))
        f[Ite][False][Ite](True(),x',Cons(x,xs)) -> f(x',xs)
        g(x,Cons(x',xs)) -> g[Ite][False][Ite](lt0(x,Cons(Nil(),Nil())),x,Cons(x',xs))
        g(x,Nil()) -> Cons(Nil(),Cons(Nil(),Cons(Nil(),Cons(Nil(),Nil()))))
        g[Ite][False][Ite](False(),Cons(x,xs),y) -> g(xs,Cons(Cons(Nil(),Nil()),y))
        g[Ite][False][Ite](True(),x',Cons(x,xs)) -> g(x',xs)
        goal(x,y) -> Cons(f(x,y),Cons(g(x,y),Nil()))
        lt0(x,Nil()) -> False()
        lt0(Cons(x',xs'),Cons(x,xs)) -> lt0(xs',xs)
        notEmpty(Cons(x,xs)) -> True()
        notEmpty(Nil()) -> False()
        number4(n) -> Cons(Nil(),Cons(Nil(),Cons(Nil(),Cons(Nil(),Nil()))))
      Signature:
        {f/2,f[Ite][False][Ite]/3,g/2,g[Ite][False][Ite]/3,goal/2,lt0/2,notEmpty/1,number4/1} / {Cons/2,False/0,Nil/0,True/0}
      Obligation:
        Innermost
        basic terms: {f,f[Ite][False][Ite],g,g[Ite][False][Ite],goal,lt0,notEmpty,number4}/{Cons,False,Nil,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(Cons) = {1,2},
        uargs(f[Ite][False][Ite]) = {1},
        uargs(g[Ite][False][Ite]) = {1}
      
      Following symbols are considered usable:
        {f,f[Ite][False][Ite],g,g[Ite][False][Ite],goal,lt0,notEmpty,number4}
      TcT has computed the following interpretation:
                      p(Cons) = [1] x1 + [1] x2 + [1]         
                     p(False) = [1]                           
                       p(Nil) = [0]                           
                      p(True) = [0]                           
                         p(f) = [2] x1 + [1] x2 + [9]         
        p(f[Ite][False][Ite]) = [1] x1 + [2] x2 + [1] x3 + [8]
                         p(g) = [3] x1 + [1] x2 + [4]         
        p(g[Ite][False][Ite]) = [1] x1 + [3] x2 + [1] x3 + [3]
                      p(goal) = [5] x1 + [4] x2 + [15]        
                       p(lt0) = [1]                           
                  p(notEmpty) = [4] x1 + [1]                  
                   p(number4) = [4]                           
      
      Following rules are strictly oriented:
      lt0(Nil(),Cons(x',xs)) = [1]   
                             > [0]   
                             = True()
      
      
      Following rules are (at-least) weakly oriented:
                    f(x,Cons(x',xs)) =  [2] x + [1] x' + [1] xs + [10]           
                                     >= [2] x + [1] x' + [1] xs + [10]           
                                     =  f[Ite][False][Ite](lt0(x                 
                                                              ,Cons(Nil(),Nil()))
                                                          ,x                     
                                                          ,Cons(x',xs))          
      
                          f(x,Nil()) =  [2] x + [9]                              
                                     >= [4]                                      
                                     =  Cons(Nil()                               
                                            ,Cons(Nil()                          
                                                 ,Cons(Nil(),Cons(Nil(),Nil()))))
      
          f[Ite][False][Ite](False() =  [2] x + [2] xs + [1] y + [11]            
                         ,Cons(x,xs)                                             
                                 ,y)                                             
                                     >= [2] xs + [1] y + [11]                    
                                     =  f(xs,Cons(Cons(Nil(),Nil()),y))          
      
           f[Ite][False][Ite](True() =  [1] x + [2] x' + [1] xs + [9]            
                                 ,x'                                             
                        ,Cons(x,xs))                                             
                                     >= [2] x' + [1] xs + [9]                    
                                     =  f(x',xs)                                 
      
                    g(x,Cons(x',xs)) =  [3] x + [1] x' + [1] xs + [5]            
                                     >= [3] x + [1] x' + [1] xs + [5]            
                                     =  g[Ite][False][Ite](lt0(x                 
                                                              ,Cons(Nil(),Nil()))
                                                          ,x                     
                                                          ,Cons(x',xs))          
      
                          g(x,Nil()) =  [3] x + [4]                              
                                     >= [4]                                      
                                     =  Cons(Nil()                               
                                            ,Cons(Nil()                          
                                                 ,Cons(Nil(),Cons(Nil(),Nil()))))
      
          g[Ite][False][Ite](False() =  [3] x + [3] xs + [1] y + [7]             
                         ,Cons(x,xs)                                             
                                 ,y)                                             
                                     >= [3] xs + [1] y + [6]                     
                                     =  g(xs,Cons(Cons(Nil(),Nil()),y))          
      
           g[Ite][False][Ite](True() =  [1] x + [3] x' + [1] xs + [4]            
                                 ,x'                                             
                        ,Cons(x,xs))                                             
                                     >= [3] x' + [1] xs + [4]                    
                                     =  g(x',xs)                                 
      
                           goal(x,y) =  [5] x + [4] y + [15]                     
                                     >= [5] x + [2] y + [15]                     
                                     =  Cons(f(x,y),Cons(g(x,y),Nil()))          
      
                        lt0(x,Nil()) =  [1]                                      
                                     >= [1]                                      
                                     =  False()                                  
      
        lt0(Cons(x',xs'),Cons(x,xs)) =  [1]                                      
                                     >= [1]                                      
                                     =  lt0(xs',xs)                              
      
                notEmpty(Cons(x,xs)) =  [4] x + [4] xs + [5]                     
                                     >= [0]                                      
                                     =  True()                                   
      
                     notEmpty(Nil()) =  [1]                                      
                                     >= [1]                                      
                                     =  False()                                  
      
                          number4(n) =  [4]                                      
                                     >= [4]                                      
                                     =  Cons(Nil()                               
                                            ,Cons(Nil()                          
                                                 ,Cons(Nil(),Cons(Nil(),Nil()))))
      
*** 1.1.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:
        f(x,Cons(x',xs)) -> f[Ite][False][Ite](lt0(x,Cons(Nil(),Nil())),x,Cons(x',xs))
        f(x,Nil()) -> Cons(Nil(),Cons(Nil(),Cons(Nil(),Cons(Nil(),Nil()))))
        f[Ite][False][Ite](False(),Cons(x,xs),y) -> f(xs,Cons(Cons(Nil(),Nil()),y))
        f[Ite][False][Ite](True(),x',Cons(x,xs)) -> f(x',xs)
        g(x,Cons(x',xs)) -> g[Ite][False][Ite](lt0(x,Cons(Nil(),Nil())),x,Cons(x',xs))
        g(x,Nil()) -> Cons(Nil(),Cons(Nil(),Cons(Nil(),Cons(Nil(),Nil()))))
        g[Ite][False][Ite](False(),Cons(x,xs),y) -> g(xs,Cons(Cons(Nil(),Nil()),y))
        g[Ite][False][Ite](True(),x',Cons(x,xs)) -> g(x',xs)
        goal(x,y) -> Cons(f(x,y),Cons(g(x,y),Nil()))
        lt0(x,Nil()) -> False()
        lt0(Cons(x',xs'),Cons(x,xs)) -> lt0(xs',xs)
        lt0(Nil(),Cons(x',xs)) -> True()
        notEmpty(Cons(x,xs)) -> True()
        notEmpty(Nil()) -> False()
        number4(n) -> Cons(Nil(),Cons(Nil(),Cons(Nil(),Cons(Nil(),Nil()))))
      Signature:
        {f/2,f[Ite][False][Ite]/3,g/2,g[Ite][False][Ite]/3,goal/2,lt0/2,notEmpty/1,number4/1} / {Cons/2,False/0,Nil/0,True/0}
      Obligation:
        Innermost
        basic terms: {f,f[Ite][False][Ite],g,g[Ite][False][Ite],goal,lt0,notEmpty,number4}/{Cons,False,Nil,True}
    Applied Processor:
      EmptyProcessor
    Proof:
      The problem is already closed. The intended complexity is O(1).