*** 1 Progress [(O(1),O(n^1))]  ***
    Considered Problem:
      Strict DP Rules:
        
      Strict TRS Rules:
        activate(X) -> X
        activate(n__from(X)) -> from(X)
        after(0(),XS) -> XS
        after(s(N),cons(X,XS)) -> after(N,activate(XS))
        from(X) -> cons(X,n__from(s(X)))
        from(X) -> n__from(X)
      Weak DP Rules:
        
      Weak TRS Rules:
        
      Signature:
        {activate/1,after/2,from/1} / {0/0,cons/2,n__from/1,s/1}
      Obligation:
        Full
        basic terms: {activate,after,from}/{0,cons,n__from,s}
    Applied Processor:
      DependencyPairs {dpKind_ = DT}
    Proof:
      We add the following weak dependency pairs:
      
      Strict DPs
        activate#(X) -> c_1(X)
        activate#(n__from(X)) -> c_2(from#(X))
        after#(0(),XS) -> c_3(XS)
        after#(s(N),cons(X,XS)) -> c_4(after#(N,activate(XS)))
        from#(X) -> c_5(X,X)
        from#(X) -> c_6(X)
      Weak DPs
        
      
      and mark the set of starting terms.
*** 1.1 Progress [(O(1),O(n^1))]  ***
    Considered Problem:
      Strict DP Rules:
        activate#(X) -> c_1(X)
        activate#(n__from(X)) -> c_2(from#(X))
        after#(0(),XS) -> c_3(XS)
        after#(s(N),cons(X,XS)) -> c_4(after#(N,activate(XS)))
        from#(X) -> c_5(X,X)
        from#(X) -> c_6(X)
      Strict TRS Rules:
        activate(X) -> X
        activate(n__from(X)) -> from(X)
        after(0(),XS) -> XS
        after(s(N),cons(X,XS)) -> after(N,activate(XS))
        from(X) -> cons(X,n__from(s(X)))
        from(X) -> n__from(X)
      Weak DP Rules:
        
      Weak TRS Rules:
        
      Signature:
        {activate/1,after/2,from/1,activate#/1,after#/2,from#/1} / {0/0,cons/2,n__from/1,s/1,c_1/1,c_2/1,c_3/1,c_4/1,c_5/2,c_6/1}
      Obligation:
        Full
        basic terms: {activate#,after#,from#}/{0,cons,n__from,s}
    Applied Processor:
      UsableRules
    Proof:
      We replace rewrite rules by usable rules:
        activate(X) -> X
        activate(n__from(X)) -> from(X)
        from(X) -> cons(X,n__from(s(X)))
        from(X) -> n__from(X)
        activate#(X) -> c_1(X)
        activate#(n__from(X)) -> c_2(from#(X))
        after#(0(),XS) -> c_3(XS)
        after#(s(N),cons(X,XS)) -> c_4(after#(N,activate(XS)))
        from#(X) -> c_5(X,X)
        from#(X) -> c_6(X)
*** 1.1.1 Progress [(O(1),O(n^1))]  ***
    Considered Problem:
      Strict DP Rules:
        activate#(X) -> c_1(X)
        activate#(n__from(X)) -> c_2(from#(X))
        after#(0(),XS) -> c_3(XS)
        after#(s(N),cons(X,XS)) -> c_4(after#(N,activate(XS)))
        from#(X) -> c_5(X,X)
        from#(X) -> c_6(X)
      Strict TRS Rules:
        activate(X) -> X
        activate(n__from(X)) -> from(X)
        from(X) -> cons(X,n__from(s(X)))
        from(X) -> n__from(X)
      Weak DP Rules:
        
      Weak TRS Rules:
        
      Signature:
        {activate/1,after/2,from/1,activate#/1,after#/2,from#/1} / {0/0,cons/2,n__from/1,s/1,c_1/1,c_2/1,c_3/1,c_4/1,c_5/2,c_6/1}
      Obligation:
        Full
        basic terms: {activate#,after#,from#}/{0,cons,n__from,s}
    Applied Processor:
      WeightGap {wgDimension = 1, wgDegree = 0, 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(after#) = {2},
          uargs(c_2) = {1},
          uargs(c_3) = {1},
          uargs(c_4) = {1}
        
        Following symbols are considered usable:
          {}
        TcT has computed the following interpretation:
                  p(0) = [0]         
           p(activate) = [1] x1 + [5]
              p(after) = [0]         
               p(cons) = [1] x2 + [0]
               p(from) = [1] x1 + [0]
            p(n__from) = [1] x1 + [0]
                  p(s) = [1] x1 + [0]
          p(activate#) = [0]         
             p(after#) = [1] x2 + [0]
              p(from#) = [0]         
                p(c_1) = [0]         
                p(c_2) = [1] x1 + [0]
                p(c_3) = [1] x1 + [0]
                p(c_4) = [1] x1 + [0]
                p(c_5) = [0]         
                p(c_6) = [0]         
        
        Following rules are strictly oriented:
                 activate(X) = [1] X + [5]
                             > [1] X + [0]
                             = X          
        
        activate(n__from(X)) = [1] X + [5]
                             > [1] X + [0]
                             = from(X)    
        
        
        Following rules are (at-least) weakly oriented:
                   activate#(X) =  [0]                        
                                >= [0]                        
                                =  c_1(X)                     
        
          activate#(n__from(X)) =  [0]                        
                                >= [0]                        
                                =  c_2(from#(X))              
        
                 after#(0(),XS) =  [1] XS + [0]               
                                >= [1] XS + [0]               
                                =  c_3(XS)                    
        
        after#(s(N),cons(X,XS)) =  [1] XS + [0]               
                                >= [1] XS + [5]               
                                =  c_4(after#(N,activate(XS)))
        
                       from#(X) =  [0]                        
                                >= [0]                        
                                =  c_5(X,X)                   
        
                       from#(X) =  [0]                        
                                >= [0]                        
                                =  c_6(X)                     
        
                        from(X) =  [1] X + [0]                
                                >= [1] X + [0]                
                                =  cons(X,n__from(s(X)))      
        
                        from(X) =  [1] X + [0]                
                                >= [1] X + [0]                
                                =  n__from(X)                 
        
      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:
        activate#(X) -> c_1(X)
        activate#(n__from(X)) -> c_2(from#(X))
        after#(0(),XS) -> c_3(XS)
        after#(s(N),cons(X,XS)) -> c_4(after#(N,activate(XS)))
        from#(X) -> c_5(X,X)
        from#(X) -> c_6(X)
      Strict TRS Rules:
        from(X) -> cons(X,n__from(s(X)))
        from(X) -> n__from(X)
      Weak DP Rules:
        
      Weak TRS Rules:
        activate(X) -> X
        activate(n__from(X)) -> from(X)
      Signature:
        {activate/1,after/2,from/1,activate#/1,after#/2,from#/1} / {0/0,cons/2,n__from/1,s/1,c_1/1,c_2/1,c_3/1,c_4/1,c_5/2,c_6/1}
      Obligation:
        Full
        basic terms: {activate#,after#,from#}/{0,cons,n__from,s}
    Applied Processor:
      WeightGap {wgDimension = 1, wgDegree = 0, 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(after#) = {2},
          uargs(c_2) = {1},
          uargs(c_3) = {1},
          uargs(c_4) = {1}
        
        Following symbols are considered usable:
          {}
        TcT has computed the following interpretation:
                  p(0) = [0]         
           p(activate) = [1] x1 + [0]
              p(after) = [0]         
               p(cons) = [1] x2 + [0]
               p(from) = [1] x1 + [0]
            p(n__from) = [1] x1 + [0]
                  p(s) = [1] x1 + [7]
          p(activate#) = [0]         
             p(after#) = [1] x2 + [0]
              p(from#) = [1]         
                p(c_1) = [0]         
                p(c_2) = [1] x1 + [0]
                p(c_3) = [1] x1 + [0]
                p(c_4) = [1] x1 + [0]
                p(c_5) = [0]         
                p(c_6) = [0]         
        
        Following rules are strictly oriented:
        from#(X) = [1]     
                 > [0]     
                 = c_5(X,X)
        
        from#(X) = [1]     
                 > [0]     
                 = c_6(X)  
        
        
        Following rules are (at-least) weakly oriented:
                   activate#(X) =  [0]                        
                                >= [0]                        
                                =  c_1(X)                     
        
          activate#(n__from(X)) =  [0]                        
                                >= [1]                        
                                =  c_2(from#(X))              
        
                 after#(0(),XS) =  [1] XS + [0]               
                                >= [1] XS + [0]               
                                =  c_3(XS)                    
        
        after#(s(N),cons(X,XS)) =  [1] XS + [0]               
                                >= [1] XS + [0]               
                                =  c_4(after#(N,activate(XS)))
        
                    activate(X) =  [1] X + [0]                
                                >= [1] X + [0]                
                                =  X                          
        
           activate(n__from(X)) =  [1] X + [0]                
                                >= [1] X + [0]                
                                =  from(X)                    
        
                        from(X) =  [1] X + [0]                
                                >= [1] X + [7]                
                                =  cons(X,n__from(s(X)))      
        
                        from(X) =  [1] X + [0]                
                                >= [1] X + [0]                
                                =  n__from(X)                 
        
      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:
        activate#(X) -> c_1(X)
        activate#(n__from(X)) -> c_2(from#(X))
        after#(0(),XS) -> c_3(XS)
        after#(s(N),cons(X,XS)) -> c_4(after#(N,activate(XS)))
      Strict TRS Rules:
        from(X) -> cons(X,n__from(s(X)))
        from(X) -> n__from(X)
      Weak DP Rules:
        from#(X) -> c_5(X,X)
        from#(X) -> c_6(X)
      Weak TRS Rules:
        activate(X) -> X
        activate(n__from(X)) -> from(X)
      Signature:
        {activate/1,after/2,from/1,activate#/1,after#/2,from#/1} / {0/0,cons/2,n__from/1,s/1,c_1/1,c_2/1,c_3/1,c_4/1,c_5/2,c_6/1}
      Obligation:
        Full
        basic terms: {activate#,after#,from#}/{0,cons,n__from,s}
    Applied Processor:
      WeightGap {wgDimension = 1, wgDegree = 0, 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(after#) = {2},
          uargs(c_2) = {1},
          uargs(c_3) = {1},
          uargs(c_4) = {1}
        
        Following symbols are considered usable:
          {}
        TcT has computed the following interpretation:
                  p(0) = [0]         
           p(activate) = [1] x1 + [0]
              p(after) = [0]         
               p(cons) = [1] x2 + [5]
               p(from) = [0]         
            p(n__from) = [0]         
                  p(s) = [1] x1 + [0]
          p(activate#) = [0]         
             p(after#) = [1] x2 + [0]
              p(from#) = [0]         
                p(c_1) = [0]         
                p(c_2) = [1] x1 + [0]
                p(c_3) = [1] x1 + [0]
                p(c_4) = [1] x1 + [0]
                p(c_5) = [0]         
                p(c_6) = [0]         
        
        Following rules are strictly oriented:
        after#(s(N),cons(X,XS)) = [1] XS + [5]               
                                > [1] XS + [0]               
                                = c_4(after#(N,activate(XS)))
        
        
        Following rules are (at-least) weakly oriented:
                 activate#(X) =  [0]                  
                              >= [0]                  
                              =  c_1(X)               
        
        activate#(n__from(X)) =  [0]                  
                              >= [0]                  
                              =  c_2(from#(X))        
        
               after#(0(),XS) =  [1] XS + [0]         
                              >= [1] XS + [0]         
                              =  c_3(XS)              
        
                     from#(X) =  [0]                  
                              >= [0]                  
                              =  c_5(X,X)             
        
                     from#(X) =  [0]                  
                              >= [0]                  
                              =  c_6(X)               
        
                  activate(X) =  [1] X + [0]          
                              >= [1] X + [0]          
                              =  X                    
        
         activate(n__from(X)) =  [0]                  
                              >= [0]                  
                              =  from(X)              
        
                      from(X) =  [0]                  
                              >= [5]                  
                              =  cons(X,n__from(s(X)))
        
                      from(X) =  [0]                  
                              >= [0]                  
                              =  n__from(X)           
        
      Further, it can be verified that all rules not oriented are covered by the weightgap condition.
*** 1.1.1.1.1.1 Progress [(O(1),O(n^1))]  ***
    Considered Problem:
      Strict DP Rules:
        activate#(X) -> c_1(X)
        activate#(n__from(X)) -> c_2(from#(X))
        after#(0(),XS) -> c_3(XS)
      Strict TRS Rules:
        from(X) -> cons(X,n__from(s(X)))
        from(X) -> n__from(X)
      Weak DP Rules:
        after#(s(N),cons(X,XS)) -> c_4(after#(N,activate(XS)))
        from#(X) -> c_5(X,X)
        from#(X) -> c_6(X)
      Weak TRS Rules:
        activate(X) -> X
        activate(n__from(X)) -> from(X)
      Signature:
        {activate/1,after/2,from/1,activate#/1,after#/2,from#/1} / {0/0,cons/2,n__from/1,s/1,c_1/1,c_2/1,c_3/1,c_4/1,c_5/2,c_6/1}
      Obligation:
        Full
        basic terms: {activate#,after#,from#}/{0,cons,n__from,s}
    Applied Processor:
      WeightGap {wgDimension = 1, wgDegree = 0, 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(after#) = {2},
          uargs(c_2) = {1},
          uargs(c_3) = {1},
          uargs(c_4) = {1}
        
        Following symbols are considered usable:
          {}
        TcT has computed the following interpretation:
                  p(0) = [0]         
           p(activate) = [1] x1 + [0]
              p(after) = [0]         
               p(cons) = [1] x2 + [0]
               p(from) = [1] x1 + [0]
            p(n__from) = [1] x1 + [0]
                  p(s) = [1] x1 + [0]
          p(activate#) = [9] x1 + [0]
             p(after#) = [1] x2 + [9]
              p(from#) = [9] x1 + [0]
                p(c_1) = [9] x1 + [0]
                p(c_2) = [1] x1 + [0]
                p(c_3) = [1] x1 + [0]
                p(c_4) = [1] x1 + [0]
                p(c_5) = [9] x1 + [0]
                p(c_6) = [9] x1 + [0]
        
        Following rules are strictly oriented:
        after#(0(),XS) = [1] XS + [9]
                       > [1] XS + [0]
                       = c_3(XS)     
        
        
        Following rules are (at-least) weakly oriented:
                   activate#(X) =  [9] X + [0]                
                                >= [9] X + [0]                
                                =  c_1(X)                     
        
          activate#(n__from(X)) =  [9] X + [0]                
                                >= [9] X + [0]                
                                =  c_2(from#(X))              
        
        after#(s(N),cons(X,XS)) =  [1] XS + [9]               
                                >= [1] XS + [9]               
                                =  c_4(after#(N,activate(XS)))
        
                       from#(X) =  [9] X + [0]                
                                >= [9] X + [0]                
                                =  c_5(X,X)                   
        
                       from#(X) =  [9] X + [0]                
                                >= [9] X + [0]                
                                =  c_6(X)                     
        
                    activate(X) =  [1] X + [0]                
                                >= [1] X + [0]                
                                =  X                          
        
           activate(n__from(X)) =  [1] X + [0]                
                                >= [1] X + [0]                
                                =  from(X)                    
        
                        from(X) =  [1] X + [0]                
                                >= [1] X + [0]                
                                =  cons(X,n__from(s(X)))      
        
                        from(X) =  [1] X + [0]                
                                >= [1] X + [0]                
                                =  n__from(X)                 
        
      Further, it can be verified that all rules not oriented are covered by the weightgap condition.
*** 1.1.1.1.1.1.1 Progress [(O(1),O(n^1))]  ***
    Considered Problem:
      Strict DP Rules:
        activate#(X) -> c_1(X)
        activate#(n__from(X)) -> c_2(from#(X))
      Strict TRS Rules:
        from(X) -> cons(X,n__from(s(X)))
        from(X) -> n__from(X)
      Weak DP Rules:
        after#(0(),XS) -> c_3(XS)
        after#(s(N),cons(X,XS)) -> c_4(after#(N,activate(XS)))
        from#(X) -> c_5(X,X)
        from#(X) -> c_6(X)
      Weak TRS Rules:
        activate(X) -> X
        activate(n__from(X)) -> from(X)
      Signature:
        {activate/1,after/2,from/1,activate#/1,after#/2,from#/1} / {0/0,cons/2,n__from/1,s/1,c_1/1,c_2/1,c_3/1,c_4/1,c_5/2,c_6/1}
      Obligation:
        Full
        basic terms: {activate#,after#,from#}/{0,cons,n__from,s}
    Applied Processor:
      WeightGap {wgDimension = 1, wgDegree = 0, 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(after#) = {2},
          uargs(c_2) = {1},
          uargs(c_3) = {1},
          uargs(c_4) = {1}
        
        Following symbols are considered usable:
          {}
        TcT has computed the following interpretation:
                  p(0) = [0]         
           p(activate) = [1] x1 + [0]
              p(after) = [0]         
               p(cons) = [1] x2 + [0]
               p(from) = [1] x1 + [0]
            p(n__from) = [1] x1 + [0]
                  p(s) = [1] x1 + [0]
          p(activate#) = [1]         
             p(after#) = [1] x2 + [0]
              p(from#) = [0]         
                p(c_1) = [0]         
                p(c_2) = [1] x1 + [0]
                p(c_3) = [1] x1 + [0]
                p(c_4) = [1] x1 + [0]
                p(c_5) = [0]         
                p(c_6) = [0]         
        
        Following rules are strictly oriented:
                 activate#(X) = [1]          
                              > [0]          
                              = c_1(X)       
        
        activate#(n__from(X)) = [1]          
                              > [0]          
                              = c_2(from#(X))
        
        
        Following rules are (at-least) weakly oriented:
                 after#(0(),XS) =  [1] XS + [0]               
                                >= [1] XS + [0]               
                                =  c_3(XS)                    
        
        after#(s(N),cons(X,XS)) =  [1] XS + [0]               
                                >= [1] XS + [0]               
                                =  c_4(after#(N,activate(XS)))
        
                       from#(X) =  [0]                        
                                >= [0]                        
                                =  c_5(X,X)                   
        
                       from#(X) =  [0]                        
                                >= [0]                        
                                =  c_6(X)                     
        
                    activate(X) =  [1] X + [0]                
                                >= [1] X + [0]                
                                =  X                          
        
           activate(n__from(X)) =  [1] X + [0]                
                                >= [1] X + [0]                
                                =  from(X)                    
        
                        from(X) =  [1] X + [0]                
                                >= [1] X + [0]                
                                =  cons(X,n__from(s(X)))      
        
                        from(X) =  [1] X + [0]                
                                >= [1] X + [0]                
                                =  n__from(X)                 
        
      Further, it can be verified that all rules not oriented are covered by the weightgap condition.
*** 1.1.1.1.1.1.1.1 Progress [(O(1),O(n^1))]  ***
    Considered Problem:
      Strict DP Rules:
        
      Strict TRS Rules:
        from(X) -> cons(X,n__from(s(X)))
        from(X) -> n__from(X)
      Weak DP Rules:
        activate#(X) -> c_1(X)
        activate#(n__from(X)) -> c_2(from#(X))
        after#(0(),XS) -> c_3(XS)
        after#(s(N),cons(X,XS)) -> c_4(after#(N,activate(XS)))
        from#(X) -> c_5(X,X)
        from#(X) -> c_6(X)
      Weak TRS Rules:
        activate(X) -> X
        activate(n__from(X)) -> from(X)
      Signature:
        {activate/1,after/2,from/1,activate#/1,after#/2,from#/1} / {0/0,cons/2,n__from/1,s/1,c_1/1,c_2/1,c_3/1,c_4/1,c_5/2,c_6/1}
      Obligation:
        Full
        basic terms: {activate#,after#,from#}/{0,cons,n__from,s}
    Applied Processor:
      WeightGap {wgDimension = 1, wgDegree = 0, 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(after#) = {2},
          uargs(c_2) = {1},
          uargs(c_3) = {1},
          uargs(c_4) = {1}
        
        Following symbols are considered usable:
          {}
        TcT has computed the following interpretation:
                  p(0) = [6]                  
           p(activate) = [1] x1 + [1]         
              p(after) = [8] x1 + [1] x2 + [8]
               p(cons) = [1] x2 + [0]         
               p(from) = [1] x1 + [1]         
            p(n__from) = [1] x1 + [0]         
                  p(s) = [1] x1 + [3]         
          p(activate#) = [3] x1 + [13]        
             p(after#) = [3] x1 + [1] x2 + [3]
              p(from#) = [8]                  
                p(c_1) = [3] x1 + [2]         
                p(c_2) = [1] x1 + [0]         
                p(c_3) = [1] x1 + [1]         
                p(c_4) = [1] x1 + [4]         
                p(c_5) = [1]                  
                p(c_6) = [2]                  
        
        Following rules are strictly oriented:
        from(X) = [1] X + [1]
                > [1] X + [0]
                = n__from(X) 
        
        
        Following rules are (at-least) weakly oriented:
                   activate#(X) =  [3] X + [13]               
                                >= [3] X + [2]                
                                =  c_1(X)                     
        
          activate#(n__from(X)) =  [3] X + [13]               
                                >= [8]                        
                                =  c_2(from#(X))              
        
                 after#(0(),XS) =  [1] XS + [21]              
                                >= [1] XS + [1]               
                                =  c_3(XS)                    
        
        after#(s(N),cons(X,XS)) =  [3] N + [1] XS + [12]      
                                >= [3] N + [1] XS + [8]       
                                =  c_4(after#(N,activate(XS)))
        
                       from#(X) =  [8]                        
                                >= [1]                        
                                =  c_5(X,X)                   
        
                       from#(X) =  [8]                        
                                >= [2]                        
                                =  c_6(X)                     
        
                    activate(X) =  [1] X + [1]                
                                >= [1] X + [0]                
                                =  X                          
        
           activate(n__from(X)) =  [1] X + [1]                
                                >= [1] X + [1]                
                                =  from(X)                    
        
                        from(X) =  [1] X + [1]                
                                >= [1] X + [3]                
                                =  cons(X,n__from(s(X)))      
        
      Further, it can be verified that all rules not oriented are covered by the weightgap condition.
*** 1.1.1.1.1.1.1.1.1 Progress [(O(1),O(n^1))]  ***
    Considered Problem:
      Strict DP Rules:
        
      Strict TRS Rules:
        from(X) -> cons(X,n__from(s(X)))
      Weak DP Rules:
        activate#(X) -> c_1(X)
        activate#(n__from(X)) -> c_2(from#(X))
        after#(0(),XS) -> c_3(XS)
        after#(s(N),cons(X,XS)) -> c_4(after#(N,activate(XS)))
        from#(X) -> c_5(X,X)
        from#(X) -> c_6(X)
      Weak TRS Rules:
        activate(X) -> X
        activate(n__from(X)) -> from(X)
        from(X) -> n__from(X)
      Signature:
        {activate/1,after/2,from/1,activate#/1,after#/2,from#/1} / {0/0,cons/2,n__from/1,s/1,c_1/1,c_2/1,c_3/1,c_4/1,c_5/2,c_6/1}
      Obligation:
        Full
        basic terms: {activate#,after#,from#}/{0,cons,n__from,s}
    Applied Processor:
      WeightGap {wgDimension = 1, wgDegree = 0, 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(after#) = {2},
          uargs(c_2) = {1},
          uargs(c_3) = {1},
          uargs(c_4) = {1}
        
        Following symbols are considered usable:
          {}
        TcT has computed the following interpretation:
                  p(0) = [0]                  
           p(activate) = [1] x1 + [6]         
              p(after) = [1] x2 + [0]         
               p(cons) = [1] x2 + [0]         
               p(from) = [8]                  
            p(n__from) = [2]                  
                  p(s) = [1] x1 + [4]         
          p(activate#) = [8] x1 + [4]         
             p(after#) = [4] x1 + [1] x2 + [1]
              p(from#) = [8]                  
                p(c_1) = [0]                  
                p(c_2) = [1] x1 + [0]         
                p(c_3) = [1] x1 + [1]         
                p(c_4) = [1] x1 + [0]         
                p(c_5) = [8]                  
                p(c_6) = [2]                  
        
        Following rules are strictly oriented:
        from(X) = [8]                  
                > [2]                  
                = cons(X,n__from(s(X)))
        
        
        Following rules are (at-least) weakly oriented:
                   activate#(X) =  [8] X + [4]                
                                >= [0]                        
                                =  c_1(X)                     
        
          activate#(n__from(X)) =  [20]                       
                                >= [8]                        
                                =  c_2(from#(X))              
        
                 after#(0(),XS) =  [1] XS + [1]               
                                >= [1] XS + [1]               
                                =  c_3(XS)                    
        
        after#(s(N),cons(X,XS)) =  [4] N + [1] XS + [17]      
                                >= [4] N + [1] XS + [7]       
                                =  c_4(after#(N,activate(XS)))
        
                       from#(X) =  [8]                        
                                >= [8]                        
                                =  c_5(X,X)                   
        
                       from#(X) =  [8]                        
                                >= [2]                        
                                =  c_6(X)                     
        
                    activate(X) =  [1] X + [6]                
                                >= [1] X + [0]                
                                =  X                          
        
           activate(n__from(X)) =  [8]                        
                                >= [8]                        
                                =  from(X)                    
        
                        from(X) =  [8]                        
                                >= [2]                        
                                =  n__from(X)                 
        
      Further, it can be verified that all rules not oriented are covered by the weightgap condition.
*** 1.1.1.1.1.1.1.1.1.1 Progress [(O(1),O(1))]  ***
    Considered Problem:
      Strict DP Rules:
        
      Strict TRS Rules:
        
      Weak DP Rules:
        activate#(X) -> c_1(X)
        activate#(n__from(X)) -> c_2(from#(X))
        after#(0(),XS) -> c_3(XS)
        after#(s(N),cons(X,XS)) -> c_4(after#(N,activate(XS)))
        from#(X) -> c_5(X,X)
        from#(X) -> c_6(X)
      Weak TRS Rules:
        activate(X) -> X
        activate(n__from(X)) -> from(X)
        from(X) -> cons(X,n__from(s(X)))
        from(X) -> n__from(X)
      Signature:
        {activate/1,after/2,from/1,activate#/1,after#/2,from#/1} / {0/0,cons/2,n__from/1,s/1,c_1/1,c_2/1,c_3/1,c_4/1,c_5/2,c_6/1}
      Obligation:
        Full
        basic terms: {activate#,after#,from#}/{0,cons,n__from,s}
    Applied Processor:
      EmptyProcessor
    Proof:
      The problem is already closed. The intended complexity is O(1).