* Step 1: Sum WORST_CASE(Omega(n^1),O(n^1))
    + Considered Problem:
        - Strict TRS:
            a__eq(X,Y) -> false()
            a__eq(X1,X2) -> eq(X1,X2)
            a__eq(0(),0()) -> true()
            a__eq(s(X),s(Y)) -> a__eq(X,Y)
            a__inf(X) -> cons(X,inf(s(X)))
            a__inf(X) -> inf(X)
            a__length(X) -> length(X)
            a__length(cons(X,L)) -> s(length(L))
            a__length(nil()) -> 0()
            a__take(X1,X2) -> take(X1,X2)
            a__take(0(),X) -> nil()
            a__take(s(X),cons(Y,L)) -> cons(Y,take(X,L))
            mark(0()) -> 0()
            mark(cons(X1,X2)) -> cons(X1,X2)
            mark(eq(X1,X2)) -> a__eq(X1,X2)
            mark(false()) -> false()
            mark(inf(X)) -> a__inf(mark(X))
            mark(length(X)) -> a__length(mark(X))
            mark(nil()) -> nil()
            mark(s(X)) -> s(X)
            mark(take(X1,X2)) -> a__take(mark(X1),mark(X2))
            mark(true()) -> true()
        - Signature:
            {a__eq/2,a__inf/1,a__length/1,a__take/2,mark/1} / {0/0,cons/2,eq/2,false/0,inf/1,length/1,nil/0,s/1,take/2
            ,true/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {a__eq,a__inf,a__length,a__take,mark} and constructors {0
            ,cons,eq,false,inf,length,nil,s,take,true}
    + Applied Processor:
        Sum {left = someStrategy, right = someStrategy}
    + Details:
        ()
** Step 1.a:1: DecreasingLoops WORST_CASE(Omega(n^1),?)
    + Considered Problem:
        - Strict TRS:
            a__eq(X,Y) -> false()
            a__eq(X1,X2) -> eq(X1,X2)
            a__eq(0(),0()) -> true()
            a__eq(s(X),s(Y)) -> a__eq(X,Y)
            a__inf(X) -> cons(X,inf(s(X)))
            a__inf(X) -> inf(X)
            a__length(X) -> length(X)
            a__length(cons(X,L)) -> s(length(L))
            a__length(nil()) -> 0()
            a__take(X1,X2) -> take(X1,X2)
            a__take(0(),X) -> nil()
            a__take(s(X),cons(Y,L)) -> cons(Y,take(X,L))
            mark(0()) -> 0()
            mark(cons(X1,X2)) -> cons(X1,X2)
            mark(eq(X1,X2)) -> a__eq(X1,X2)
            mark(false()) -> false()
            mark(inf(X)) -> a__inf(mark(X))
            mark(length(X)) -> a__length(mark(X))
            mark(nil()) -> nil()
            mark(s(X)) -> s(X)
            mark(take(X1,X2)) -> a__take(mark(X1),mark(X2))
            mark(true()) -> true()
        - Signature:
            {a__eq/2,a__inf/1,a__length/1,a__take/2,mark/1} / {0/0,cons/2,eq/2,false/0,inf/1,length/1,nil/0,s/1,take/2
            ,true/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {a__eq,a__inf,a__length,a__take,mark} and constructors {0
            ,cons,eq,false,inf,length,nil,s,take,true}
    + Applied Processor:
        DecreasingLoops {bound = AnyLoop, narrow = 10}
    + Details:
        The system has following decreasing Loops:
          a__eq(x,y){x -> s(x),y -> s(y)} =
            a__eq(s(x),s(y)) ->^+ a__eq(x,y)
              = C[a__eq(x,y) = a__eq(x,y){}]

** Step 1.b:1: WeightGap WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict TRS:
            a__eq(X,Y) -> false()
            a__eq(X1,X2) -> eq(X1,X2)
            a__eq(0(),0()) -> true()
            a__eq(s(X),s(Y)) -> a__eq(X,Y)
            a__inf(X) -> cons(X,inf(s(X)))
            a__inf(X) -> inf(X)
            a__length(X) -> length(X)
            a__length(cons(X,L)) -> s(length(L))
            a__length(nil()) -> 0()
            a__take(X1,X2) -> take(X1,X2)
            a__take(0(),X) -> nil()
            a__take(s(X),cons(Y,L)) -> cons(Y,take(X,L))
            mark(0()) -> 0()
            mark(cons(X1,X2)) -> cons(X1,X2)
            mark(eq(X1,X2)) -> a__eq(X1,X2)
            mark(false()) -> false()
            mark(inf(X)) -> a__inf(mark(X))
            mark(length(X)) -> a__length(mark(X))
            mark(nil()) -> nil()
            mark(s(X)) -> s(X)
            mark(take(X1,X2)) -> a__take(mark(X1),mark(X2))
            mark(true()) -> true()
        - Signature:
            {a__eq/2,a__inf/1,a__length/1,a__take/2,mark/1} / {0/0,cons/2,eq/2,false/0,inf/1,length/1,nil/0,s/1,take/2
            ,true/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {a__eq,a__inf,a__length,a__take,mark} and constructors {0
            ,cons,eq,false,inf,length,nil,s,take,true}
    + Applied Processor:
        WeightGap {wgDimension = 1, wgDegree = 1, wgKind = Algebraic, wgUArgs = UArgs, wgOn = WgOnAny}
    + Details:
        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(a__inf) = {1},
            uargs(a__length) = {1},
            uargs(a__take) = {1,2}
          
          Following symbols are considered usable:
            all
          TcT has computed the following interpretation:
                    p(0) = [0]                  
                p(a__eq) = [0]                  
               p(a__inf) = [1] x1 + [0]         
            p(a__length) = [1] x1 + [0]         
              p(a__take) = [1] x1 + [1] x2 + [0]
                 p(cons) = [1] x1 + [0]         
                   p(eq) = [0]                  
                p(false) = [0]                  
                  p(inf) = [1] x1 + [0]         
               p(length) = [1] x1 + [1]         
                 p(mark) = [1] x1 + [7]         
                  p(nil) = [0]                  
                    p(s) = [0]                  
                 p(take) = [1] x1 + [1] x2 + [0]
                 p(true) = [0]                  
          
          Following rules are strictly oriented:
                  mark(0()) = [7]               
                            > [0]               
                            = 0()               
          
          mark(cons(X1,X2)) = [1] X1 + [7]      
                            > [1] X1 + [0]      
                            = cons(X1,X2)       
          
            mark(eq(X1,X2)) = [7]               
                            > [0]               
                            = a__eq(X1,X2)      
          
              mark(false()) = [7]               
                            > [0]               
                            = false()           
          
            mark(length(X)) = [1] X + [8]       
                            > [1] X + [7]       
                            = a__length(mark(X))
          
                mark(nil()) = [7]               
                            > [0]               
                            = nil()             
          
                 mark(s(X)) = [7]               
                            > [0]               
                            = s(X)              
          
               mark(true()) = [7]               
                            > [0]               
                            = true()            
          
          
          Following rules are (at-least) weakly oriented:
                       a__eq(X,Y) =  [0]                       
                                  >= [0]                       
                                  =  false()                   
          
                     a__eq(X1,X2) =  [0]                       
                                  >= [0]                       
                                  =  eq(X1,X2)                 
          
                   a__eq(0(),0()) =  [0]                       
                                  >= [0]                       
                                  =  true()                    
          
                 a__eq(s(X),s(Y)) =  [0]                       
                                  >= [0]                       
                                  =  a__eq(X,Y)                
          
                        a__inf(X) =  [1] X + [0]               
                                  >= [1] X + [0]               
                                  =  cons(X,inf(s(X)))         
          
                        a__inf(X) =  [1] X + [0]               
                                  >= [1] X + [0]               
                                  =  inf(X)                    
          
                     a__length(X) =  [1] X + [0]               
                                  >= [1] X + [1]               
                                  =  length(X)                 
          
             a__length(cons(X,L)) =  [1] X + [0]               
                                  >= [0]                       
                                  =  s(length(L))              
          
                 a__length(nil()) =  [0]                       
                                  >= [0]                       
                                  =  0()                       
          
                   a__take(X1,X2) =  [1] X1 + [1] X2 + [0]     
                                  >= [1] X1 + [1] X2 + [0]     
                                  =  take(X1,X2)               
          
                   a__take(0(),X) =  [1] X + [0]               
                                  >= [0]                       
                                  =  nil()                     
          
          a__take(s(X),cons(Y,L)) =  [1] Y + [0]               
                                  >= [1] Y + [0]               
                                  =  cons(Y,take(X,L))         
          
                     mark(inf(X)) =  [1] X + [7]               
                                  >= [1] X + [7]               
                                  =  a__inf(mark(X))           
          
                mark(take(X1,X2)) =  [1] X1 + [1] X2 + [7]     
                                  >= [1] X1 + [1] X2 + [14]    
                                  =  a__take(mark(X1),mark(X2))
          
        Further, it can be verified that all rules not oriented are covered by the weightgap condition.
** Step 1.b:2: WeightGap WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict TRS:
            a__eq(X,Y) -> false()
            a__eq(X1,X2) -> eq(X1,X2)
            a__eq(0(),0()) -> true()
            a__eq(s(X),s(Y)) -> a__eq(X,Y)
            a__inf(X) -> cons(X,inf(s(X)))
            a__inf(X) -> inf(X)
            a__length(X) -> length(X)
            a__length(cons(X,L)) -> s(length(L))
            a__length(nil()) -> 0()
            a__take(X1,X2) -> take(X1,X2)
            a__take(0(),X) -> nil()
            a__take(s(X),cons(Y,L)) -> cons(Y,take(X,L))
            mark(inf(X)) -> a__inf(mark(X))
            mark(take(X1,X2)) -> a__take(mark(X1),mark(X2))
        - Weak TRS:
            mark(0()) -> 0()
            mark(cons(X1,X2)) -> cons(X1,X2)
            mark(eq(X1,X2)) -> a__eq(X1,X2)
            mark(false()) -> false()
            mark(length(X)) -> a__length(mark(X))
            mark(nil()) -> nil()
            mark(s(X)) -> s(X)
            mark(true()) -> true()
        - Signature:
            {a__eq/2,a__inf/1,a__length/1,a__take/2,mark/1} / {0/0,cons/2,eq/2,false/0,inf/1,length/1,nil/0,s/1,take/2
            ,true/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {a__eq,a__inf,a__length,a__take,mark} and constructors {0
            ,cons,eq,false,inf,length,nil,s,take,true}
    + Applied Processor:
        WeightGap {wgDimension = 1, wgDegree = 1, wgKind = Algebraic, wgUArgs = UArgs, wgOn = WgOnAny}
    + Details:
        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(a__inf) = {1},
            uargs(a__length) = {1},
            uargs(a__take) = {1,2}
          
          Following symbols are considered usable:
            all
          TcT has computed the following interpretation:
                    p(0) = [1]                  
                p(a__eq) = [1]                  
               p(a__inf) = [1] x1 + [0]         
            p(a__length) = [1] x1 + [0]         
              p(a__take) = [1] x1 + [1] x2 + [7]
                 p(cons) = [1]                  
                   p(eq) = [0]                  
                p(false) = [0]                  
                  p(inf) = [0]                  
               p(length) = [1] x1 + [0]         
                 p(mark) = [1]                  
                  p(nil) = [0]                  
                    p(s) = [1]                  
                 p(take) = [1] x1 + [1] x2 + [0]
                 p(true) = [0]                  
          
          Following rules are strictly oriented:
                       a__eq(X,Y) = [1]                  
                                  > [0]                  
                                  = false()              
          
                     a__eq(X1,X2) = [1]                  
                                  > [0]                  
                                  = eq(X1,X2)            
          
                   a__eq(0(),0()) = [1]                  
                                  > [0]                  
                                  = true()               
          
                   a__take(X1,X2) = [1] X1 + [1] X2 + [7]
                                  > [1] X1 + [1] X2 + [0]
                                  = take(X1,X2)          
          
                   a__take(0(),X) = [1] X + [8]          
                                  > [0]                  
                                  = nil()                
          
          a__take(s(X),cons(Y,L)) = [9]                  
                                  > [1]                  
                                  = cons(Y,take(X,L))    
          
          
          Following rules are (at-least) weakly oriented:
              a__eq(s(X),s(Y)) =  [1]                       
                               >= [1]                       
                               =  a__eq(X,Y)                
          
                     a__inf(X) =  [1] X + [0]               
                               >= [1]                       
                               =  cons(X,inf(s(X)))         
          
                     a__inf(X) =  [1] X + [0]               
                               >= [0]                       
                               =  inf(X)                    
          
                  a__length(X) =  [1] X + [0]               
                               >= [1] X + [0]               
                               =  length(X)                 
          
          a__length(cons(X,L)) =  [1]                       
                               >= [1]                       
                               =  s(length(L))              
          
              a__length(nil()) =  [0]                       
                               >= [1]                       
                               =  0()                       
          
                     mark(0()) =  [1]                       
                               >= [1]                       
                               =  0()                       
          
             mark(cons(X1,X2)) =  [1]                       
                               >= [1]                       
                               =  cons(X1,X2)               
          
               mark(eq(X1,X2)) =  [1]                       
                               >= [1]                       
                               =  a__eq(X1,X2)              
          
                 mark(false()) =  [1]                       
                               >= [0]                       
                               =  false()                   
          
                  mark(inf(X)) =  [1]                       
                               >= [1]                       
                               =  a__inf(mark(X))           
          
               mark(length(X)) =  [1]                       
                               >= [1]                       
                               =  a__length(mark(X))        
          
                   mark(nil()) =  [1]                       
                               >= [0]                       
                               =  nil()                     
          
                    mark(s(X)) =  [1]                       
                               >= [1]                       
                               =  s(X)                      
          
             mark(take(X1,X2)) =  [1]                       
                               >= [9]                       
                               =  a__take(mark(X1),mark(X2))
          
                  mark(true()) =  [1]                       
                               >= [0]                       
                               =  true()                    
          
        Further, it can be verified that all rules not oriented are covered by the weightgap condition.
** Step 1.b:3: WeightGap WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict TRS:
            a__eq(s(X),s(Y)) -> a__eq(X,Y)
            a__inf(X) -> cons(X,inf(s(X)))
            a__inf(X) -> inf(X)
            a__length(X) -> length(X)
            a__length(cons(X,L)) -> s(length(L))
            a__length(nil()) -> 0()
            mark(inf(X)) -> a__inf(mark(X))
            mark(take(X1,X2)) -> a__take(mark(X1),mark(X2))
        - Weak TRS:
            a__eq(X,Y) -> false()
            a__eq(X1,X2) -> eq(X1,X2)
            a__eq(0(),0()) -> true()
            a__take(X1,X2) -> take(X1,X2)
            a__take(0(),X) -> nil()
            a__take(s(X),cons(Y,L)) -> cons(Y,take(X,L))
            mark(0()) -> 0()
            mark(cons(X1,X2)) -> cons(X1,X2)
            mark(eq(X1,X2)) -> a__eq(X1,X2)
            mark(false()) -> false()
            mark(length(X)) -> a__length(mark(X))
            mark(nil()) -> nil()
            mark(s(X)) -> s(X)
            mark(true()) -> true()
        - Signature:
            {a__eq/2,a__inf/1,a__length/1,a__take/2,mark/1} / {0/0,cons/2,eq/2,false/0,inf/1,length/1,nil/0,s/1,take/2
            ,true/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {a__eq,a__inf,a__length,a__take,mark} and constructors {0
            ,cons,eq,false,inf,length,nil,s,take,true}
    + Applied Processor:
        WeightGap {wgDimension = 1, wgDegree = 1, wgKind = Algebraic, wgUArgs = UArgs, wgOn = WgOnAny}
    + Details:
        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(a__inf) = {1},
            uargs(a__length) = {1},
            uargs(a__take) = {1,2}
          
          Following symbols are considered usable:
            all
          TcT has computed the following interpretation:
                    p(0) = [0]                  
                p(a__eq) = [4]                  
               p(a__inf) = [1] x1 + [1]         
            p(a__length) = [1] x1 + [0]         
              p(a__take) = [1] x1 + [1] x2 + [0]
                 p(cons) = [0]                  
                   p(eq) = [4]                  
                p(false) = [0]                  
                  p(inf) = [0]                  
               p(length) = [0]                  
                 p(mark) = [4]                  
                  p(nil) = [0]                  
                    p(s) = [2]                  
                 p(take) = [1] x2 + [0]         
                 p(true) = [4]                  
          
          Following rules are strictly oriented:
          a__inf(X) = [1] X + [1]      
                    > [0]              
                    = cons(X,inf(s(X)))
          
          a__inf(X) = [1] X + [1]      
                    > [0]              
                    = inf(X)           
          
          
          Following rules are (at-least) weakly oriented:
                       a__eq(X,Y) =  [4]                       
                                  >= [0]                       
                                  =  false()                   
          
                     a__eq(X1,X2) =  [4]                       
                                  >= [4]                       
                                  =  eq(X1,X2)                 
          
                   a__eq(0(),0()) =  [4]                       
                                  >= [4]                       
                                  =  true()                    
          
                 a__eq(s(X),s(Y)) =  [4]                       
                                  >= [4]                       
                                  =  a__eq(X,Y)                
          
                     a__length(X) =  [1] X + [0]               
                                  >= [0]                       
                                  =  length(X)                 
          
             a__length(cons(X,L)) =  [0]                       
                                  >= [2]                       
                                  =  s(length(L))              
          
                 a__length(nil()) =  [0]                       
                                  >= [0]                       
                                  =  0()                       
          
                   a__take(X1,X2) =  [1] X1 + [1] X2 + [0]     
                                  >= [1] X2 + [0]              
                                  =  take(X1,X2)               
          
                   a__take(0(),X) =  [1] X + [0]               
                                  >= [0]                       
                                  =  nil()                     
          
          a__take(s(X),cons(Y,L)) =  [2]                       
                                  >= [0]                       
                                  =  cons(Y,take(X,L))         
          
                        mark(0()) =  [4]                       
                                  >= [0]                       
                                  =  0()                       
          
                mark(cons(X1,X2)) =  [4]                       
                                  >= [0]                       
                                  =  cons(X1,X2)               
          
                  mark(eq(X1,X2)) =  [4]                       
                                  >= [4]                       
                                  =  a__eq(X1,X2)              
          
                    mark(false()) =  [4]                       
                                  >= [0]                       
                                  =  false()                   
          
                     mark(inf(X)) =  [4]                       
                                  >= [5]                       
                                  =  a__inf(mark(X))           
          
                  mark(length(X)) =  [4]                       
                                  >= [4]                       
                                  =  a__length(mark(X))        
          
                      mark(nil()) =  [4]                       
                                  >= [0]                       
                                  =  nil()                     
          
                       mark(s(X)) =  [4]                       
                                  >= [2]                       
                                  =  s(X)                      
          
                mark(take(X1,X2)) =  [4]                       
                                  >= [8]                       
                                  =  a__take(mark(X1),mark(X2))
          
                     mark(true()) =  [4]                       
                                  >= [4]                       
                                  =  true()                    
          
        Further, it can be verified that all rules not oriented are covered by the weightgap condition.
** Step 1.b:4: WeightGap WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict TRS:
            a__eq(s(X),s(Y)) -> a__eq(X,Y)
            a__length(X) -> length(X)
            a__length(cons(X,L)) -> s(length(L))
            a__length(nil()) -> 0()
            mark(inf(X)) -> a__inf(mark(X))
            mark(take(X1,X2)) -> a__take(mark(X1),mark(X2))
        - Weak TRS:
            a__eq(X,Y) -> false()
            a__eq(X1,X2) -> eq(X1,X2)
            a__eq(0(),0()) -> true()
            a__inf(X) -> cons(X,inf(s(X)))
            a__inf(X) -> inf(X)
            a__take(X1,X2) -> take(X1,X2)
            a__take(0(),X) -> nil()
            a__take(s(X),cons(Y,L)) -> cons(Y,take(X,L))
            mark(0()) -> 0()
            mark(cons(X1,X2)) -> cons(X1,X2)
            mark(eq(X1,X2)) -> a__eq(X1,X2)
            mark(false()) -> false()
            mark(length(X)) -> a__length(mark(X))
            mark(nil()) -> nil()
            mark(s(X)) -> s(X)
            mark(true()) -> true()
        - Signature:
            {a__eq/2,a__inf/1,a__length/1,a__take/2,mark/1} / {0/0,cons/2,eq/2,false/0,inf/1,length/1,nil/0,s/1,take/2
            ,true/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {a__eq,a__inf,a__length,a__take,mark} and constructors {0
            ,cons,eq,false,inf,length,nil,s,take,true}
    + Applied Processor:
        WeightGap {wgDimension = 1, wgDegree = 1, wgKind = Algebraic, wgUArgs = UArgs, wgOn = WgOnAny}
    + Details:
        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(a__inf) = {1},
            uargs(a__length) = {1},
            uargs(a__take) = {1,2}
          
          Following symbols are considered usable:
            all
          TcT has computed the following interpretation:
                    p(0) = [1]                  
                p(a__eq) = [0]                  
               p(a__inf) = [1] x1 + [2]         
            p(a__length) = [1] x1 + [0]         
              p(a__take) = [1] x1 + [1] x2 + [0]
                 p(cons) = [1] x1 + [2]         
                   p(eq) = [0]                  
                p(false) = [0]                  
                  p(inf) = [1] x1 + [2]         
               p(length) = [1] x1 + [0]         
                 p(mark) = [5] x1 + [0]         
                  p(nil) = [1]                  
                    p(s) = [0]                  
                 p(take) = [1] x1 + [1] x2 + [0]
                 p(true) = [0]                  
          
          Following rules are strictly oriented:
          a__length(cons(X,L)) = [1] X + [2]    
                               > [0]            
                               = s(length(L))   
          
                  mark(inf(X)) = [5] X + [10]   
                               > [5] X + [2]    
                               = a__inf(mark(X))
          
          
          Following rules are (at-least) weakly oriented:
                       a__eq(X,Y) =  [0]                       
                                  >= [0]                       
                                  =  false()                   
          
                     a__eq(X1,X2) =  [0]                       
                                  >= [0]                       
                                  =  eq(X1,X2)                 
          
                   a__eq(0(),0()) =  [0]                       
                                  >= [0]                       
                                  =  true()                    
          
                 a__eq(s(X),s(Y)) =  [0]                       
                                  >= [0]                       
                                  =  a__eq(X,Y)                
          
                        a__inf(X) =  [1] X + [2]               
                                  >= [1] X + [2]               
                                  =  cons(X,inf(s(X)))         
          
                        a__inf(X) =  [1] X + [2]               
                                  >= [1] X + [2]               
                                  =  inf(X)                    
          
                     a__length(X) =  [1] X + [0]               
                                  >= [1] X + [0]               
                                  =  length(X)                 
          
                 a__length(nil()) =  [1]                       
                                  >= [1]                       
                                  =  0()                       
          
                   a__take(X1,X2) =  [1] X1 + [1] X2 + [0]     
                                  >= [1] X1 + [1] X2 + [0]     
                                  =  take(X1,X2)               
          
                   a__take(0(),X) =  [1] X + [1]               
                                  >= [1]                       
                                  =  nil()                     
          
          a__take(s(X),cons(Y,L)) =  [1] Y + [2]               
                                  >= [1] Y + [2]               
                                  =  cons(Y,take(X,L))         
          
                        mark(0()) =  [5]                       
                                  >= [1]                       
                                  =  0()                       
          
                mark(cons(X1,X2)) =  [5] X1 + [10]             
                                  >= [1] X1 + [2]              
                                  =  cons(X1,X2)               
          
                  mark(eq(X1,X2)) =  [0]                       
                                  >= [0]                       
                                  =  a__eq(X1,X2)              
          
                    mark(false()) =  [0]                       
                                  >= [0]                       
                                  =  false()                   
          
                  mark(length(X)) =  [5] X + [0]               
                                  >= [5] X + [0]               
                                  =  a__length(mark(X))        
          
                      mark(nil()) =  [5]                       
                                  >= [1]                       
                                  =  nil()                     
          
                       mark(s(X)) =  [0]                       
                                  >= [0]                       
                                  =  s(X)                      
          
                mark(take(X1,X2)) =  [5] X1 + [5] X2 + [0]     
                                  >= [5] X1 + [5] X2 + [0]     
                                  =  a__take(mark(X1),mark(X2))
          
                     mark(true()) =  [0]                       
                                  >= [0]                       
                                  =  true()                    
          
        Further, it can be verified that all rules not oriented are covered by the weightgap condition.
** Step 1.b:5: WeightGap WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict TRS:
            a__eq(s(X),s(Y)) -> a__eq(X,Y)
            a__length(X) -> length(X)
            a__length(nil()) -> 0()
            mark(take(X1,X2)) -> a__take(mark(X1),mark(X2))
        - Weak TRS:
            a__eq(X,Y) -> false()
            a__eq(X1,X2) -> eq(X1,X2)
            a__eq(0(),0()) -> true()
            a__inf(X) -> cons(X,inf(s(X)))
            a__inf(X) -> inf(X)
            a__length(cons(X,L)) -> s(length(L))
            a__take(X1,X2) -> take(X1,X2)
            a__take(0(),X) -> nil()
            a__take(s(X),cons(Y,L)) -> cons(Y,take(X,L))
            mark(0()) -> 0()
            mark(cons(X1,X2)) -> cons(X1,X2)
            mark(eq(X1,X2)) -> a__eq(X1,X2)
            mark(false()) -> false()
            mark(inf(X)) -> a__inf(mark(X))
            mark(length(X)) -> a__length(mark(X))
            mark(nil()) -> nil()
            mark(s(X)) -> s(X)
            mark(true()) -> true()
        - Signature:
            {a__eq/2,a__inf/1,a__length/1,a__take/2,mark/1} / {0/0,cons/2,eq/2,false/0,inf/1,length/1,nil/0,s/1,take/2
            ,true/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {a__eq,a__inf,a__length,a__take,mark} and constructors {0
            ,cons,eq,false,inf,length,nil,s,take,true}
    + Applied Processor:
        WeightGap {wgDimension = 1, wgDegree = 1, wgKind = Algebraic, wgUArgs = UArgs, wgOn = WgOnAny}
    + Details:
        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(a__inf) = {1},
            uargs(a__length) = {1},
            uargs(a__take) = {1,2}
          
          Following symbols are considered usable:
            all
          TcT has computed the following interpretation:
                    p(0) = [2]                  
                p(a__eq) = [1]                  
               p(a__inf) = [1] x1 + [1]         
            p(a__length) = [1] x1 + [1]         
              p(a__take) = [1] x1 + [1] x2 + [1]
                 p(cons) = [1] x1 + [0]         
                   p(eq) = [1]                  
                p(false) = [0]                  
                  p(inf) = [1] x1 + [1]         
               p(length) = [1] x1 + [2]         
                 p(mark) = [4] x1 + [0]         
                  p(nil) = [2]                  
                    p(s) = [0]                  
                 p(take) = [1] x1 + [1] x2 + [0]
                 p(true) = [0]                  
          
          Following rules are strictly oriented:
          a__length(nil()) = [3]
                           > [2]
                           = 0()
          
          
          Following rules are (at-least) weakly oriented:
                       a__eq(X,Y) =  [1]                       
                                  >= [0]                       
                                  =  false()                   
          
                     a__eq(X1,X2) =  [1]                       
                                  >= [1]                       
                                  =  eq(X1,X2)                 
          
                   a__eq(0(),0()) =  [1]                       
                                  >= [0]                       
                                  =  true()                    
          
                 a__eq(s(X),s(Y)) =  [1]                       
                                  >= [1]                       
                                  =  a__eq(X,Y)                
          
                        a__inf(X) =  [1] X + [1]               
                                  >= [1] X + [0]               
                                  =  cons(X,inf(s(X)))         
          
                        a__inf(X) =  [1] X + [1]               
                                  >= [1] X + [1]               
                                  =  inf(X)                    
          
                     a__length(X) =  [1] X + [1]               
                                  >= [1] X + [2]               
                                  =  length(X)                 
          
             a__length(cons(X,L)) =  [1] X + [1]               
                                  >= [0]                       
                                  =  s(length(L))              
          
                   a__take(X1,X2) =  [1] X1 + [1] X2 + [1]     
                                  >= [1] X1 + [1] X2 + [0]     
                                  =  take(X1,X2)               
          
                   a__take(0(),X) =  [1] X + [3]               
                                  >= [2]                       
                                  =  nil()                     
          
          a__take(s(X),cons(Y,L)) =  [1] Y + [1]               
                                  >= [1] Y + [0]               
                                  =  cons(Y,take(X,L))         
          
                        mark(0()) =  [8]                       
                                  >= [2]                       
                                  =  0()                       
          
                mark(cons(X1,X2)) =  [4] X1 + [0]              
                                  >= [1] X1 + [0]              
                                  =  cons(X1,X2)               
          
                  mark(eq(X1,X2)) =  [4]                       
                                  >= [1]                       
                                  =  a__eq(X1,X2)              
          
                    mark(false()) =  [0]                       
                                  >= [0]                       
                                  =  false()                   
          
                     mark(inf(X)) =  [4] X + [4]               
                                  >= [4] X + [1]               
                                  =  a__inf(mark(X))           
          
                  mark(length(X)) =  [4] X + [8]               
                                  >= [4] X + [1]               
                                  =  a__length(mark(X))        
          
                      mark(nil()) =  [8]                       
                                  >= [2]                       
                                  =  nil()                     
          
                       mark(s(X)) =  [0]                       
                                  >= [0]                       
                                  =  s(X)                      
          
                mark(take(X1,X2)) =  [4] X1 + [4] X2 + [0]     
                                  >= [4] X1 + [4] X2 + [1]     
                                  =  a__take(mark(X1),mark(X2))
          
                     mark(true()) =  [0]                       
                                  >= [0]                       
                                  =  true()                    
          
        Further, it can be verified that all rules not oriented are covered by the weightgap condition.
** Step 1.b:6: WeightGap WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict TRS:
            a__eq(s(X),s(Y)) -> a__eq(X,Y)
            a__length(X) -> length(X)
            mark(take(X1,X2)) -> a__take(mark(X1),mark(X2))
        - Weak TRS:
            a__eq(X,Y) -> false()
            a__eq(X1,X2) -> eq(X1,X2)
            a__eq(0(),0()) -> true()
            a__inf(X) -> cons(X,inf(s(X)))
            a__inf(X) -> inf(X)
            a__length(cons(X,L)) -> s(length(L))
            a__length(nil()) -> 0()
            a__take(X1,X2) -> take(X1,X2)
            a__take(0(),X) -> nil()
            a__take(s(X),cons(Y,L)) -> cons(Y,take(X,L))
            mark(0()) -> 0()
            mark(cons(X1,X2)) -> cons(X1,X2)
            mark(eq(X1,X2)) -> a__eq(X1,X2)
            mark(false()) -> false()
            mark(inf(X)) -> a__inf(mark(X))
            mark(length(X)) -> a__length(mark(X))
            mark(nil()) -> nil()
            mark(s(X)) -> s(X)
            mark(true()) -> true()
        - Signature:
            {a__eq/2,a__inf/1,a__length/1,a__take/2,mark/1} / {0/0,cons/2,eq/2,false/0,inf/1,length/1,nil/0,s/1,take/2
            ,true/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {a__eq,a__inf,a__length,a__take,mark} and constructors {0
            ,cons,eq,false,inf,length,nil,s,take,true}
    + Applied Processor:
        WeightGap {wgDimension = 1, wgDegree = 1, wgKind = Algebraic, wgUArgs = UArgs, wgOn = WgOnAny}
    + Details:
        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(a__inf) = {1},
            uargs(a__length) = {1},
            uargs(a__take) = {1,2}
          
          Following symbols are considered usable:
            all
          TcT has computed the following interpretation:
                    p(0) = [1]                  
                p(a__eq) = [0]                  
               p(a__inf) = [1] x1 + [3]         
            p(a__length) = [1] x1 + [0]         
              p(a__take) = [1] x1 + [1] x2 + [1]
                 p(cons) = [2]                  
                   p(eq) = [0]                  
                p(false) = [0]                  
                  p(inf) = [1] x1 + [1]         
               p(length) = [1] x1 + [0]         
                 p(mark) = [4] x1 + [0]         
                  p(nil) = [1]                  
                    p(s) = [0]                  
                 p(take) = [1] x1 + [1] x2 + [1]
                 p(true) = [0]                  
          
          Following rules are strictly oriented:
          mark(take(X1,X2)) = [4] X1 + [4] X2 + [4]     
                            > [4] X1 + [4] X2 + [1]     
                            = a__take(mark(X1),mark(X2))
          
          
          Following rules are (at-least) weakly oriented:
                       a__eq(X,Y) =  [0]                  
                                  >= [0]                  
                                  =  false()              
          
                     a__eq(X1,X2) =  [0]                  
                                  >= [0]                  
                                  =  eq(X1,X2)            
          
                   a__eq(0(),0()) =  [0]                  
                                  >= [0]                  
                                  =  true()               
          
                 a__eq(s(X),s(Y)) =  [0]                  
                                  >= [0]                  
                                  =  a__eq(X,Y)           
          
                        a__inf(X) =  [1] X + [3]          
                                  >= [2]                  
                                  =  cons(X,inf(s(X)))    
          
                        a__inf(X) =  [1] X + [3]          
                                  >= [1] X + [1]          
                                  =  inf(X)               
          
                     a__length(X) =  [1] X + [0]          
                                  >= [1] X + [0]          
                                  =  length(X)            
          
             a__length(cons(X,L)) =  [2]                  
                                  >= [0]                  
                                  =  s(length(L))         
          
                 a__length(nil()) =  [1]                  
                                  >= [1]                  
                                  =  0()                  
          
                   a__take(X1,X2) =  [1] X1 + [1] X2 + [1]
                                  >= [1] X1 + [1] X2 + [1]
                                  =  take(X1,X2)          
          
                   a__take(0(),X) =  [1] X + [2]          
                                  >= [1]                  
                                  =  nil()                
          
          a__take(s(X),cons(Y,L)) =  [3]                  
                                  >= [2]                  
                                  =  cons(Y,take(X,L))    
          
                        mark(0()) =  [4]                  
                                  >= [1]                  
                                  =  0()                  
          
                mark(cons(X1,X2)) =  [8]                  
                                  >= [2]                  
                                  =  cons(X1,X2)          
          
                  mark(eq(X1,X2)) =  [0]                  
                                  >= [0]                  
                                  =  a__eq(X1,X2)         
          
                    mark(false()) =  [0]                  
                                  >= [0]                  
                                  =  false()              
          
                     mark(inf(X)) =  [4] X + [4]          
                                  >= [4] X + [3]          
                                  =  a__inf(mark(X))      
          
                  mark(length(X)) =  [4] X + [0]          
                                  >= [4] X + [0]          
                                  =  a__length(mark(X))   
          
                      mark(nil()) =  [4]                  
                                  >= [1]                  
                                  =  nil()                
          
                       mark(s(X)) =  [0]                  
                                  >= [0]                  
                                  =  s(X)                 
          
                     mark(true()) =  [0]                  
                                  >= [0]                  
                                  =  true()               
          
        Further, it can be verified that all rules not oriented are covered by the weightgap condition.
** Step 1.b:7: WeightGap WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict TRS:
            a__eq(s(X),s(Y)) -> a__eq(X,Y)
            a__length(X) -> length(X)
        - Weak TRS:
            a__eq(X,Y) -> false()
            a__eq(X1,X2) -> eq(X1,X2)
            a__eq(0(),0()) -> true()
            a__inf(X) -> cons(X,inf(s(X)))
            a__inf(X) -> inf(X)
            a__length(cons(X,L)) -> s(length(L))
            a__length(nil()) -> 0()
            a__take(X1,X2) -> take(X1,X2)
            a__take(0(),X) -> nil()
            a__take(s(X),cons(Y,L)) -> cons(Y,take(X,L))
            mark(0()) -> 0()
            mark(cons(X1,X2)) -> cons(X1,X2)
            mark(eq(X1,X2)) -> a__eq(X1,X2)
            mark(false()) -> false()
            mark(inf(X)) -> a__inf(mark(X))
            mark(length(X)) -> a__length(mark(X))
            mark(nil()) -> nil()
            mark(s(X)) -> s(X)
            mark(take(X1,X2)) -> a__take(mark(X1),mark(X2))
            mark(true()) -> true()
        - Signature:
            {a__eq/2,a__inf/1,a__length/1,a__take/2,mark/1} / {0/0,cons/2,eq/2,false/0,inf/1,length/1,nil/0,s/1,take/2
            ,true/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {a__eq,a__inf,a__length,a__take,mark} and constructors {0
            ,cons,eq,false,inf,length,nil,s,take,true}
    + Applied Processor:
        WeightGap {wgDimension = 1, wgDegree = 1, wgKind = Algebraic, wgUArgs = UArgs, wgOn = WgOnAny}
    + Details:
        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(a__inf) = {1},
            uargs(a__length) = {1},
            uargs(a__take) = {1,2}
          
          Following symbols are considered usable:
            all
          TcT has computed the following interpretation:
                    p(0) = [0]                  
                p(a__eq) = [2]                  
               p(a__inf) = [1] x1 + [0]         
            p(a__length) = [1] x1 + [4]         
              p(a__take) = [1] x1 + [1] x2 + [6]
                 p(cons) = [1] x1 + [0]         
                   p(eq) = [2]                  
                p(false) = [0]                  
                  p(inf) = [1] x1 + [0]         
               p(length) = [1] x1 + [1]         
                 p(mark) = [4] x1 + [0]         
                  p(nil) = [0]                  
                    p(s) = [0]                  
                 p(take) = [1] x1 + [1] x2 + [3]
                 p(true) = [0]                  
          
          Following rules are strictly oriented:
          a__length(X) = [1] X + [4]
                       > [1] X + [1]
                       = length(X)  
          
          
          Following rules are (at-least) weakly oriented:
                       a__eq(X,Y) =  [2]                       
                                  >= [0]                       
                                  =  false()                   
          
                     a__eq(X1,X2) =  [2]                       
                                  >= [2]                       
                                  =  eq(X1,X2)                 
          
                   a__eq(0(),0()) =  [2]                       
                                  >= [0]                       
                                  =  true()                    
          
                 a__eq(s(X),s(Y)) =  [2]                       
                                  >= [2]                       
                                  =  a__eq(X,Y)                
          
                        a__inf(X) =  [1] X + [0]               
                                  >= [1] X + [0]               
                                  =  cons(X,inf(s(X)))         
          
                        a__inf(X) =  [1] X + [0]               
                                  >= [1] X + [0]               
                                  =  inf(X)                    
          
             a__length(cons(X,L)) =  [1] X + [4]               
                                  >= [0]                       
                                  =  s(length(L))              
          
                 a__length(nil()) =  [4]                       
                                  >= [0]                       
                                  =  0()                       
          
                   a__take(X1,X2) =  [1] X1 + [1] X2 + [6]     
                                  >= [1] X1 + [1] X2 + [3]     
                                  =  take(X1,X2)               
          
                   a__take(0(),X) =  [1] X + [6]               
                                  >= [0]                       
                                  =  nil()                     
          
          a__take(s(X),cons(Y,L)) =  [1] Y + [6]               
                                  >= [1] Y + [0]               
                                  =  cons(Y,take(X,L))         
          
                        mark(0()) =  [0]                       
                                  >= [0]                       
                                  =  0()                       
          
                mark(cons(X1,X2)) =  [4] X1 + [0]              
                                  >= [1] X1 + [0]              
                                  =  cons(X1,X2)               
          
                  mark(eq(X1,X2)) =  [8]                       
                                  >= [2]                       
                                  =  a__eq(X1,X2)              
          
                    mark(false()) =  [0]                       
                                  >= [0]                       
                                  =  false()                   
          
                     mark(inf(X)) =  [4] X + [0]               
                                  >= [4] X + [0]               
                                  =  a__inf(mark(X))           
          
                  mark(length(X)) =  [4] X + [4]               
                                  >= [4] X + [4]               
                                  =  a__length(mark(X))        
          
                      mark(nil()) =  [0]                       
                                  >= [0]                       
                                  =  nil()                     
          
                       mark(s(X)) =  [0]                       
                                  >= [0]                       
                                  =  s(X)                      
          
                mark(take(X1,X2)) =  [4] X1 + [4] X2 + [12]    
                                  >= [4] X1 + [4] X2 + [6]     
                                  =  a__take(mark(X1),mark(X2))
          
                     mark(true()) =  [0]                       
                                  >= [0]                       
                                  =  true()                    
          
        Further, it can be verified that all rules not oriented are covered by the weightgap condition.
** Step 1.b:8: WeightGap WORST_CASE(?,O(n^1))
    + Considered Problem:
        - Strict TRS:
            a__eq(s(X),s(Y)) -> a__eq(X,Y)
        - Weak TRS:
            a__eq(X,Y) -> false()
            a__eq(X1,X2) -> eq(X1,X2)
            a__eq(0(),0()) -> true()
            a__inf(X) -> cons(X,inf(s(X)))
            a__inf(X) -> inf(X)
            a__length(X) -> length(X)
            a__length(cons(X,L)) -> s(length(L))
            a__length(nil()) -> 0()
            a__take(X1,X2) -> take(X1,X2)
            a__take(0(),X) -> nil()
            a__take(s(X),cons(Y,L)) -> cons(Y,take(X,L))
            mark(0()) -> 0()
            mark(cons(X1,X2)) -> cons(X1,X2)
            mark(eq(X1,X2)) -> a__eq(X1,X2)
            mark(false()) -> false()
            mark(inf(X)) -> a__inf(mark(X))
            mark(length(X)) -> a__length(mark(X))
            mark(nil()) -> nil()
            mark(s(X)) -> s(X)
            mark(take(X1,X2)) -> a__take(mark(X1),mark(X2))
            mark(true()) -> true()
        - Signature:
            {a__eq/2,a__inf/1,a__length/1,a__take/2,mark/1} / {0/0,cons/2,eq/2,false/0,inf/1,length/1,nil/0,s/1,take/2
            ,true/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {a__eq,a__inf,a__length,a__take,mark} and constructors {0
            ,cons,eq,false,inf,length,nil,s,take,true}
    + Applied Processor:
        WeightGap {wgDimension = 1, wgDegree = 1, wgKind = Algebraic, wgUArgs = UArgs, wgOn = WgOnAny}
    + Details:
        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(a__inf) = {1},
            uargs(a__length) = {1},
            uargs(a__take) = {1,2}
          
          Following symbols are considered usable:
            all
          TcT has computed the following interpretation:
                    p(0) = [0]                  
                p(a__eq) = [1] x2 + [0]         
               p(a__inf) = [1] x1 + [4]         
            p(a__length) = [1] x1 + [5]         
              p(a__take) = [1] x1 + [1] x2 + [4]
                 p(cons) = [1] x2 + [0]         
                   p(eq) = [1] x2 + [0]         
                p(false) = [0]                  
                  p(inf) = [1] x1 + [2]         
               p(length) = [1] x1 + [4]         
                 p(mark) = [2] x1 + [4]         
                  p(nil) = [1]                  
                    p(s) = [1] x1 + [1]         
                 p(take) = [1] x1 + [1] x2 + [4]
                 p(true) = [0]                  
          
          Following rules are strictly oriented:
          a__eq(s(X),s(Y)) = [1] Y + [1]
                           > [1] Y + [0]
                           = a__eq(X,Y) 
          
          
          Following rules are (at-least) weakly oriented:
                       a__eq(X,Y) =  [1] Y + [0]               
                                  >= [0]                       
                                  =  false()                   
          
                     a__eq(X1,X2) =  [1] X2 + [0]              
                                  >= [1] X2 + [0]              
                                  =  eq(X1,X2)                 
          
                   a__eq(0(),0()) =  [0]                       
                                  >= [0]                       
                                  =  true()                    
          
                        a__inf(X) =  [1] X + [4]               
                                  >= [1] X + [3]               
                                  =  cons(X,inf(s(X)))         
          
                        a__inf(X) =  [1] X + [4]               
                                  >= [1] X + [2]               
                                  =  inf(X)                    
          
                     a__length(X) =  [1] X + [5]               
                                  >= [1] X + [4]               
                                  =  length(X)                 
          
             a__length(cons(X,L)) =  [1] L + [5]               
                                  >= [1] L + [5]               
                                  =  s(length(L))              
          
                 a__length(nil()) =  [6]                       
                                  >= [0]                       
                                  =  0()                       
          
                   a__take(X1,X2) =  [1] X1 + [1] X2 + [4]     
                                  >= [1] X1 + [1] X2 + [4]     
                                  =  take(X1,X2)               
          
                   a__take(0(),X) =  [1] X + [4]               
                                  >= [1]                       
                                  =  nil()                     
          
          a__take(s(X),cons(Y,L)) =  [1] L + [1] X + [5]       
                                  >= [1] L + [1] X + [4]       
                                  =  cons(Y,take(X,L))         
          
                        mark(0()) =  [4]                       
                                  >= [0]                       
                                  =  0()                       
          
                mark(cons(X1,X2)) =  [2] X2 + [4]              
                                  >= [1] X2 + [0]              
                                  =  cons(X1,X2)               
          
                  mark(eq(X1,X2)) =  [2] X2 + [4]              
                                  >= [1] X2 + [0]              
                                  =  a__eq(X1,X2)              
          
                    mark(false()) =  [4]                       
                                  >= [0]                       
                                  =  false()                   
          
                     mark(inf(X)) =  [2] X + [8]               
                                  >= [2] X + [8]               
                                  =  a__inf(mark(X))           
          
                  mark(length(X)) =  [2] X + [12]              
                                  >= [2] X + [9]               
                                  =  a__length(mark(X))        
          
                      mark(nil()) =  [6]                       
                                  >= [1]                       
                                  =  nil()                     
          
                       mark(s(X)) =  [2] X + [6]               
                                  >= [1] X + [1]               
                                  =  s(X)                      
          
                mark(take(X1,X2)) =  [2] X1 + [2] X2 + [12]    
                                  >= [2] X1 + [2] X2 + [12]    
                                  =  a__take(mark(X1),mark(X2))
          
                     mark(true()) =  [4]                       
                                  >= [0]                       
                                  =  true()                    
          
        Further, it can be verified that all rules not oriented are covered by the weightgap condition.
** Step 1.b:9: EmptyProcessor WORST_CASE(?,O(1))
    + Considered Problem:
        - Weak TRS:
            a__eq(X,Y) -> false()
            a__eq(X1,X2) -> eq(X1,X2)
            a__eq(0(),0()) -> true()
            a__eq(s(X),s(Y)) -> a__eq(X,Y)
            a__inf(X) -> cons(X,inf(s(X)))
            a__inf(X) -> inf(X)
            a__length(X) -> length(X)
            a__length(cons(X,L)) -> s(length(L))
            a__length(nil()) -> 0()
            a__take(X1,X2) -> take(X1,X2)
            a__take(0(),X) -> nil()
            a__take(s(X),cons(Y,L)) -> cons(Y,take(X,L))
            mark(0()) -> 0()
            mark(cons(X1,X2)) -> cons(X1,X2)
            mark(eq(X1,X2)) -> a__eq(X1,X2)
            mark(false()) -> false()
            mark(inf(X)) -> a__inf(mark(X))
            mark(length(X)) -> a__length(mark(X))
            mark(nil()) -> nil()
            mark(s(X)) -> s(X)
            mark(take(X1,X2)) -> a__take(mark(X1),mark(X2))
            mark(true()) -> true()
        - Signature:
            {a__eq/2,a__inf/1,a__length/1,a__take/2,mark/1} / {0/0,cons/2,eq/2,false/0,inf/1,length/1,nil/0,s/1,take/2
            ,true/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {a__eq,a__inf,a__length,a__take,mark} and constructors {0
            ,cons,eq,false,inf,length,nil,s,take,true}
    + Applied Processor:
        EmptyProcessor
    + Details:
        The problem is already closed. The intended complexity is O(1).

WORST_CASE(Omega(n^1),O(n^1))