* Step 1: Sum WORST_CASE(Omega(n^1),O(n^2))
    + Considered Problem:
        - Strict TRS:
            conv(0()) -> cons(nil(),0())
            conv(s(x)) -> cons(conv(half(s(x))),lastbit(s(x)))
            half(0()) -> 0()
            half(s(0())) -> 0()
            half(s(s(x))) -> s(half(x))
            lastbit(0()) -> 0()
            lastbit(s(0())) -> s(0())
            lastbit(s(s(x))) -> lastbit(x)
        - Signature:
            {conv/1,half/1,lastbit/1} / {0/0,cons/2,nil/0,s/1}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {conv,half,lastbit} and constructors {0,cons,nil,s}
    + Applied Processor:
        Sum {left = someStrategy, right = someStrategy}
    + Details:
        ()
** Step 1.a:1: DecreasingLoops WORST_CASE(Omega(n^1),?)
    + Considered Problem:
        - Strict TRS:
            conv(0()) -> cons(nil(),0())
            conv(s(x)) -> cons(conv(half(s(x))),lastbit(s(x)))
            half(0()) -> 0()
            half(s(0())) -> 0()
            half(s(s(x))) -> s(half(x))
            lastbit(0()) -> 0()
            lastbit(s(0())) -> s(0())
            lastbit(s(s(x))) -> lastbit(x)
        - Signature:
            {conv/1,half/1,lastbit/1} / {0/0,cons/2,nil/0,s/1}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {conv,half,lastbit} and constructors {0,cons,nil,s}
    + Applied Processor:
        DecreasingLoops {bound = AnyLoop, narrow = 10}
    + Details:
        The system has following decreasing Loops:
          half(x){x -> s(s(x))} =
            half(s(s(x))) ->^+ s(half(x))
              = C[half(x) = half(x){}]

** Step 1.b:1: WeightGap WORST_CASE(?,O(n^2))
    + Considered Problem:
        - Strict TRS:
            conv(0()) -> cons(nil(),0())
            conv(s(x)) -> cons(conv(half(s(x))),lastbit(s(x)))
            half(0()) -> 0()
            half(s(0())) -> 0()
            half(s(s(x))) -> s(half(x))
            lastbit(0()) -> 0()
            lastbit(s(0())) -> s(0())
            lastbit(s(s(x))) -> lastbit(x)
        - Signature:
            {conv/1,half/1,lastbit/1} / {0/0,cons/2,nil/0,s/1}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {conv,half,lastbit} and constructors {0,cons,nil,s}
    + 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(cons) = {1,2},
            uargs(conv) = {1},
            uargs(s) = {1}
          
          Following symbols are considered usable:
            all
          TcT has computed the following interpretation:
                  p(0) = [8]                   
               p(cons) = [1] x1 + [1] x2 + [10]
               p(conv) = [1] x1 + [8]          
               p(half) = [1] x1 + [12]         
            p(lastbit) = [0]                   
                p(nil) = [8]                   
                  p(s) = [1] x1 + [0]          
          
          Following rules are strictly oriented:
             half(0()) = [20]
                       > [8] 
                       = 0() 
          
          half(s(0())) = [20]
                       > [8] 
                       = 0() 
          
          
          Following rules are (at-least) weakly oriented:
                 conv(0()) =  [16]                                
                           >= [26]                                
                           =  cons(nil(),0())                     
          
                conv(s(x)) =  [1] x + [8]                         
                           >= [1] x + [30]                        
                           =  cons(conv(half(s(x))),lastbit(s(x)))
          
             half(s(s(x))) =  [1] x + [12]                        
                           >= [1] x + [12]                        
                           =  s(half(x))                          
          
              lastbit(0()) =  [0]                                 
                           >= [8]                                 
                           =  0()                                 
          
           lastbit(s(0())) =  [0]                                 
                           >= [8]                                 
                           =  s(0())                              
          
          lastbit(s(s(x))) =  [0]                                 
                           >= [0]                                 
                           =  lastbit(x)                          
          
        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^2))
    + Considered Problem:
        - Strict TRS:
            conv(0()) -> cons(nil(),0())
            conv(s(x)) -> cons(conv(half(s(x))),lastbit(s(x)))
            half(s(s(x))) -> s(half(x))
            lastbit(0()) -> 0()
            lastbit(s(0())) -> s(0())
            lastbit(s(s(x))) -> lastbit(x)
        - Weak TRS:
            half(0()) -> 0()
            half(s(0())) -> 0()
        - Signature:
            {conv/1,half/1,lastbit/1} / {0/0,cons/2,nil/0,s/1}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {conv,half,lastbit} and constructors {0,cons,nil,s}
    + 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(cons) = {1,2},
            uargs(conv) = {1},
            uargs(s) = {1}
          
          Following symbols are considered usable:
            all
          TcT has computed the following interpretation:
                  p(0) = [0]                  
               p(cons) = [1] x1 + [1] x2 + [0]
               p(conv) = [1] x1 + [12]        
               p(half) = [0]                  
            p(lastbit) = [1] x1 + [10]        
                p(nil) = [2]                  
                  p(s) = [1] x1 + [8]         
          
          Following rules are strictly oriented:
                 conv(0()) = [12]           
                           > [2]            
                           = cons(nil(),0())
          
              lastbit(0()) = [10]           
                           > [0]            
                           = 0()            
          
           lastbit(s(0())) = [18]           
                           > [8]            
                           = s(0())         
          
          lastbit(s(s(x))) = [1] x + [26]   
                           > [1] x + [10]   
                           = lastbit(x)     
          
          
          Following rules are (at-least) weakly oriented:
             conv(s(x)) =  [1] x + [20]                        
                        >= [1] x + [30]                        
                        =  cons(conv(half(s(x))),lastbit(s(x)))
          
              half(0()) =  [0]                                 
                        >= [0]                                 
                        =  0()                                 
          
           half(s(0())) =  [0]                                 
                        >= [0]                                 
                        =  0()                                 
          
          half(s(s(x))) =  [0]                                 
                        >= [8]                                 
                        =  s(half(x))                          
          
        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^2))
    + Considered Problem:
        - Strict TRS:
            conv(s(x)) -> cons(conv(half(s(x))),lastbit(s(x)))
            half(s(s(x))) -> s(half(x))
        - Weak TRS:
            conv(0()) -> cons(nil(),0())
            half(0()) -> 0()
            half(s(0())) -> 0()
            lastbit(0()) -> 0()
            lastbit(s(0())) -> s(0())
            lastbit(s(s(x))) -> lastbit(x)
        - Signature:
            {conv/1,half/1,lastbit/1} / {0/0,cons/2,nil/0,s/1}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {conv,half,lastbit} and constructors {0,cons,nil,s}
    + 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(cons) = {1,2},
            uargs(conv) = {1},
            uargs(s) = {1}
          
          Following symbols are considered usable:
            all
          TcT has computed the following interpretation:
                  p(0) = [0]                  
               p(cons) = [1] x1 + [1] x2 + [1]
               p(conv) = [1] x1 + [5]         
               p(half) = [1] x1 + [0]         
            p(lastbit) = [9]                  
                p(nil) = [3]                  
                  p(s) = [1] x1 + [8]         
          
          Following rules are strictly oriented:
          half(s(s(x))) = [1] x + [16]
                        > [1] x + [8] 
                        = s(half(x))  
          
          
          Following rules are (at-least) weakly oriented:
                 conv(0()) =  [5]                                 
                           >= [4]                                 
                           =  cons(nil(),0())                     
          
                conv(s(x)) =  [1] x + [13]                        
                           >= [1] x + [23]                        
                           =  cons(conv(half(s(x))),lastbit(s(x)))
          
                 half(0()) =  [0]                                 
                           >= [0]                                 
                           =  0()                                 
          
              half(s(0())) =  [8]                                 
                           >= [0]                                 
                           =  0()                                 
          
              lastbit(0()) =  [9]                                 
                           >= [0]                                 
                           =  0()                                 
          
           lastbit(s(0())) =  [9]                                 
                           >= [8]                                 
                           =  s(0())                              
          
          lastbit(s(s(x))) =  [9]                                 
                           >= [9]                                 
                           =  lastbit(x)                          
          
        Further, it can be verified that all rules not oriented are covered by the weightgap condition.
** Step 1.b:4: MI WORST_CASE(?,O(n^2))
    + Considered Problem:
        - Strict TRS:
            conv(s(x)) -> cons(conv(half(s(x))),lastbit(s(x)))
        - Weak TRS:
            conv(0()) -> cons(nil(),0())
            half(0()) -> 0()
            half(s(0())) -> 0()
            half(s(s(x))) -> s(half(x))
            lastbit(0()) -> 0()
            lastbit(s(0())) -> s(0())
            lastbit(s(s(x))) -> lastbit(x)
        - Signature:
            {conv/1,half/1,lastbit/1} / {0/0,cons/2,nil/0,s/1}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {conv,half,lastbit} and constructors {0,cons,nil,s}
    + Applied Processor:
        MI {miKind = MaximalMatrix (UpperTriangular (Multiplicity (Just 2))), miDimension = 3, miUArgs = UArgs, miURules = URules, miSelector = Just any strict-rules}
    + Details:
        We apply a matrix interpretation of kind MaximalMatrix (UpperTriangular (Multiplicity (Just 2))):
        
        The following argument positions are considered usable:
          uargs(cons) = {1,2},
          uargs(conv) = {1},
          uargs(s) = {1}
        
        Following symbols are considered usable:
          {conv,half,lastbit}
        TcT has computed the following interpretation:
                p(0) = [0]                            
                       [1]                            
                       [2]                            
             p(cons) = [1 0 0]       [1 0 0]       [3]
                       [0 0 2] x_1 + [0 0 0] x_2 + [0]
                       [0 0 0]       [0 0 0]       [0]
             p(conv) = [1 2 0]       [6]              
                       [6 0 0] x_1 + [2]              
                       [5 0 0]       [0]              
             p(half) = [0 0 0]       [0]              
                       [0 0 1] x_1 + [0]              
                       [0 0 1]       [0]              
          p(lastbit) = [0]                            
                       [6]                            
                       [4]                            
              p(nil) = [5]                            
                       [0]                            
                       [1]                            
                p(s) = [1 0 0]       [0]              
                       [0 0 1] x_1 + [4]              
                       [0 0 1]       [2]              
        
        Following rules are strictly oriented:
        conv(s(x)) = [1 0 2]     [14]                    
                     [6 0 0] x + [2]                     
                     [5 0 0]     [0]                     
                   > [0 0 2]     [13]                    
                     [0 0 0] x + [0]                     
                     [0 0 0]     [0]                     
                   = cons(conv(half(s(x))),lastbit(s(x)))
        
        
        Following rules are (at-least) weakly oriented:
               conv(0()) =  [8]            
                            [2]            
                            [0]            
                         >= [8]            
                            [2]            
                            [0]            
                         =  cons(nil(),0())
        
               half(0()) =  [0]            
                            [2]            
                            [2]            
                         >= [0]            
                            [1]            
                            [2]            
                         =  0()            
        
            half(s(0())) =  [0]            
                            [4]            
                            [4]            
                         >= [0]            
                            [1]            
                            [2]            
                         =  0()            
        
           half(s(s(x))) =  [0 0 0]     [0]
                            [0 0 1] x + [4]
                            [0 0 1]     [4]
                         >= [0 0 0]     [0]
                            [0 0 1] x + [4]
                            [0 0 1]     [2]
                         =  s(half(x))     
        
            lastbit(0()) =  [0]            
                            [6]            
                            [4]            
                         >= [0]            
                            [1]            
                            [2]            
                         =  0()            
        
         lastbit(s(0())) =  [0]            
                            [6]            
                            [4]            
                         >= [0]            
                            [6]            
                            [4]            
                         =  s(0())         
        
        lastbit(s(s(x))) =  [0]            
                            [6]            
                            [4]            
                         >= [0]            
                            [6]            
                            [4]            
                         =  lastbit(x)     
        
** Step 1.b:5: EmptyProcessor WORST_CASE(?,O(1))
    + Considered Problem:
        - Weak TRS:
            conv(0()) -> cons(nil(),0())
            conv(s(x)) -> cons(conv(half(s(x))),lastbit(s(x)))
            half(0()) -> 0()
            half(s(0())) -> 0()
            half(s(s(x))) -> s(half(x))
            lastbit(0()) -> 0()
            lastbit(s(0())) -> s(0())
            lastbit(s(s(x))) -> lastbit(x)
        - Signature:
            {conv/1,half/1,lastbit/1} / {0/0,cons/2,nil/0,s/1}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {conv,half,lastbit} and constructors {0,cons,nil,s}
    + Applied Processor:
        EmptyProcessor
    + Details:
        The problem is already closed. The intended complexity is O(1).

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