* Step 1: Sum WORST_CASE(Omega(n^1),O(n^2))
    + Considered Problem:
        - Strict TRS:
            eq(0(),0()) -> true()
            eq(0(),s(X)) -> false()
            eq(s(X),0()) -> false()
            eq(s(X),s(Y)) -> eq(X,Y)
            ifrm(false(),N,add(M,X)) -> add(M,rm(N,X))
            ifrm(true(),N,add(M,X)) -> rm(N,X)
            purge(add(N,X)) -> add(N,purge(rm(N,X)))
            purge(nil()) -> nil()
            rm(N,add(M,X)) -> ifrm(eq(N,M),N,add(M,X))
            rm(N,nil()) -> nil()
        - Signature:
            {eq/2,ifrm/3,purge/1,rm/2} / {0/0,add/2,false/0,nil/0,s/1,true/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {eq,ifrm,purge,rm} and constructors {0,add,false,nil,s
            ,true}
    + Applied Processor:
        Sum {left = someStrategy, right = someStrategy}
    + Details:
        ()
** Step 1.a:1: DecreasingLoops WORST_CASE(Omega(n^1),?)
    + Considered Problem:
        - Strict TRS:
            eq(0(),0()) -> true()
            eq(0(),s(X)) -> false()
            eq(s(X),0()) -> false()
            eq(s(X),s(Y)) -> eq(X,Y)
            ifrm(false(),N,add(M,X)) -> add(M,rm(N,X))
            ifrm(true(),N,add(M,X)) -> rm(N,X)
            purge(add(N,X)) -> add(N,purge(rm(N,X)))
            purge(nil()) -> nil()
            rm(N,add(M,X)) -> ifrm(eq(N,M),N,add(M,X))
            rm(N,nil()) -> nil()
        - Signature:
            {eq/2,ifrm/3,purge/1,rm/2} / {0/0,add/2,false/0,nil/0,s/1,true/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {eq,ifrm,purge,rm} and constructors {0,add,false,nil,s
            ,true}
    + Applied Processor:
        DecreasingLoops {bound = AnyLoop, narrow = 10}
    + Details:
        The system has following decreasing Loops:
          eq(x,y){x -> s(x),y -> s(y)} =
            eq(s(x),s(y)) ->^+ eq(x,y)
              = C[eq(x,y) = eq(x,y){}]

** Step 1.b:1: WeightGap WORST_CASE(?,O(n^2))
    + Considered Problem:
        - Strict TRS:
            eq(0(),0()) -> true()
            eq(0(),s(X)) -> false()
            eq(s(X),0()) -> false()
            eq(s(X),s(Y)) -> eq(X,Y)
            ifrm(false(),N,add(M,X)) -> add(M,rm(N,X))
            ifrm(true(),N,add(M,X)) -> rm(N,X)
            purge(add(N,X)) -> add(N,purge(rm(N,X)))
            purge(nil()) -> nil()
            rm(N,add(M,X)) -> ifrm(eq(N,M),N,add(M,X))
            rm(N,nil()) -> nil()
        - Signature:
            {eq/2,ifrm/3,purge/1,rm/2} / {0/0,add/2,false/0,nil/0,s/1,true/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {eq,ifrm,purge,rm} and constructors {0,add,false,nil,s
            ,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(add) = {2},
            uargs(ifrm) = {1},
            uargs(purge) = {1}
          
          Following symbols are considered usable:
            all
          TcT has computed the following interpretation:
                p(0) = [0]         
              p(add) = [1] x2 + [4]
               p(eq) = [1]         
            p(false) = [0]         
             p(ifrm) = [1] x1 + [0]
              p(nil) = [0]         
            p(purge) = [1] x1 + [0]
               p(rm) = [0]         
                p(s) = [1] x1 + [0]
             p(true) = [0]         
          
          Following rules are strictly oriented:
           eq(0(),0()) = [1]    
                       > [0]    
                       = true() 
          
          eq(0(),s(X)) = [1]    
                       > [0]    
                       = false()
          
          eq(s(X),0()) = [1]    
                       > [0]    
                       = false()
          
          
          Following rules are (at-least) weakly oriented:
                     eq(s(X),s(Y)) =  [1]                     
                                   >= [1]                     
                                   =  eq(X,Y)                 
          
          ifrm(false(),N,add(M,X)) =  [0]                     
                                   >= [4]                     
                                   =  add(M,rm(N,X))          
          
           ifrm(true(),N,add(M,X)) =  [0]                     
                                   >= [0]                     
                                   =  rm(N,X)                 
          
                   purge(add(N,X)) =  [1] X + [4]             
                                   >= [4]                     
                                   =  add(N,purge(rm(N,X)))   
          
                      purge(nil()) =  [0]                     
                                   >= [0]                     
                                   =  nil()                   
          
                    rm(N,add(M,X)) =  [0]                     
                                   >= [1]                     
                                   =  ifrm(eq(N,M),N,add(M,X))
          
                       rm(N,nil()) =  [0]                     
                                   >= [0]                     
                                   =  nil()                   
          
        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:
            eq(s(X),s(Y)) -> eq(X,Y)
            ifrm(false(),N,add(M,X)) -> add(M,rm(N,X))
            ifrm(true(),N,add(M,X)) -> rm(N,X)
            purge(add(N,X)) -> add(N,purge(rm(N,X)))
            purge(nil()) -> nil()
            rm(N,add(M,X)) -> ifrm(eq(N,M),N,add(M,X))
            rm(N,nil()) -> nil()
        - Weak TRS:
            eq(0(),0()) -> true()
            eq(0(),s(X)) -> false()
            eq(s(X),0()) -> false()
        - Signature:
            {eq/2,ifrm/3,purge/1,rm/2} / {0/0,add/2,false/0,nil/0,s/1,true/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {eq,ifrm,purge,rm} and constructors {0,add,false,nil,s
            ,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(add) = {2},
            uargs(ifrm) = {1},
            uargs(purge) = {1}
          
          Following symbols are considered usable:
            all
          TcT has computed the following interpretation:
                p(0) = [0]                  
              p(add) = [1] x2 + [8]         
               p(eq) = [10]                 
            p(false) = [0]                  
             p(ifrm) = [1] x1 + [1] x3 + [5]
              p(nil) = [2]                  
            p(purge) = [1] x1 + [8]         
               p(rm) = [1] x2 + [11]        
                p(s) = [1] x1 + [1]         
             p(true) = [1]                  
          
          Following rules are strictly oriented:
          ifrm(true(),N,add(M,X)) = [1] X + [14]
                                  > [1] X + [11]
                                  = rm(N,X)     
          
                     purge(nil()) = [10]        
                                  > [2]         
                                  = nil()       
          
                      rm(N,nil()) = [13]        
                                  > [2]         
                                  = nil()       
          
          
          Following rules are (at-least) weakly oriented:
                       eq(0(),0()) =  [10]                    
                                   >= [1]                     
                                   =  true()                  
          
                      eq(0(),s(X)) =  [10]                    
                                   >= [0]                     
                                   =  false()                 
          
                      eq(s(X),0()) =  [10]                    
                                   >= [0]                     
                                   =  false()                 
          
                     eq(s(X),s(Y)) =  [10]                    
                                   >= [10]                    
                                   =  eq(X,Y)                 
          
          ifrm(false(),N,add(M,X)) =  [1] X + [13]            
                                   >= [1] X + [19]            
                                   =  add(M,rm(N,X))          
          
                   purge(add(N,X)) =  [1] X + [16]            
                                   >= [1] X + [27]            
                                   =  add(N,purge(rm(N,X)))   
          
                    rm(N,add(M,X)) =  [1] X + [19]            
                                   >= [1] X + [23]            
                                   =  ifrm(eq(N,M),N,add(M,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:
            eq(s(X),s(Y)) -> eq(X,Y)
            ifrm(false(),N,add(M,X)) -> add(M,rm(N,X))
            purge(add(N,X)) -> add(N,purge(rm(N,X)))
            rm(N,add(M,X)) -> ifrm(eq(N,M),N,add(M,X))
        - Weak TRS:
            eq(0(),0()) -> true()
            eq(0(),s(X)) -> false()
            eq(s(X),0()) -> false()
            ifrm(true(),N,add(M,X)) -> rm(N,X)
            purge(nil()) -> nil()
            rm(N,nil()) -> nil()
        - Signature:
            {eq/2,ifrm/3,purge/1,rm/2} / {0/0,add/2,false/0,nil/0,s/1,true/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {eq,ifrm,purge,rm} and constructors {0,add,false,nil,s
            ,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(add) = {2},
            uargs(ifrm) = {1},
            uargs(purge) = {1}
          
          Following symbols are considered usable:
            all
          TcT has computed the following interpretation:
                p(0) = [0]          
              p(add) = [1] x2 + [8] 
               p(eq) = [4]          
            p(false) = [2]          
             p(ifrm) = [1] x1 + [12]
              p(nil) = [0]          
            p(purge) = [1] x1 + [2] 
               p(rm) = [2]          
                p(s) = [0]          
             p(true) = [4]          
          
          Following rules are strictly oriented:
          ifrm(false(),N,add(M,X)) = [14]          
                                   > [10]          
                                   = add(M,rm(N,X))
          
          
          Following rules are (at-least) weakly oriented:
                      eq(0(),0()) =  [4]                     
                                  >= [4]                     
                                  =  true()                  
          
                     eq(0(),s(X)) =  [4]                     
                                  >= [2]                     
                                  =  false()                 
          
                     eq(s(X),0()) =  [4]                     
                                  >= [2]                     
                                  =  false()                 
          
                    eq(s(X),s(Y)) =  [4]                     
                                  >= [4]                     
                                  =  eq(X,Y)                 
          
          ifrm(true(),N,add(M,X)) =  [16]                    
                                  >= [2]                     
                                  =  rm(N,X)                 
          
                  purge(add(N,X)) =  [1] X + [10]            
                                  >= [12]                    
                                  =  add(N,purge(rm(N,X)))   
          
                     purge(nil()) =  [2]                     
                                  >= [0]                     
                                  =  nil()                   
          
                   rm(N,add(M,X)) =  [2]                     
                                  >= [16]                    
                                  =  ifrm(eq(N,M),N,add(M,X))
          
                      rm(N,nil()) =  [2]                     
                                  >= [0]                     
                                  =  nil()                   
          
        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:
            eq(s(X),s(Y)) -> eq(X,Y)
            purge(add(N,X)) -> add(N,purge(rm(N,X)))
            rm(N,add(M,X)) -> ifrm(eq(N,M),N,add(M,X))
        - Weak TRS:
            eq(0(),0()) -> true()
            eq(0(),s(X)) -> false()
            eq(s(X),0()) -> false()
            ifrm(false(),N,add(M,X)) -> add(M,rm(N,X))
            ifrm(true(),N,add(M,X)) -> rm(N,X)
            purge(nil()) -> nil()
            rm(N,nil()) -> nil()
        - Signature:
            {eq/2,ifrm/3,purge/1,rm/2} / {0/0,add/2,false/0,nil/0,s/1,true/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {eq,ifrm,purge,rm} and constructors {0,add,false,nil,s
            ,true}
    + Applied Processor:
        MI {miKind = MaximalMatrix (UpperTriangular (Multiplicity Nothing)), miDimension = 1, miUArgs = UArgs, miURules = URules, miSelector = Just any strict-rules}
    + Details:
        We apply a matrix interpretation of kind MaximalMatrix (UpperTriangular (Multiplicity Nothing)):
        
        The following argument positions are considered usable:
          uargs(add) = {2},
          uargs(ifrm) = {1},
          uargs(purge) = {1}
        
        Following symbols are considered usable:
          {eq,ifrm,purge,rm}
        TcT has computed the following interpretation:
              p(0) = [0]                    
            p(add) = [1] x_1 + [1] x_2 + [4]
             p(eq) = [0]                    
          p(false) = [0]                    
           p(ifrm) = [8] x_1 + [1] x_3 + [0]
            p(nil) = [1]                    
          p(purge) = [2] x_1 + [1]          
             p(rm) = [1] x_2 + [0]          
              p(s) = [1] x_1 + [0]          
           p(true) = [0]                    
        
        Following rules are strictly oriented:
        purge(add(N,X)) = [2] N + [2] X + [9]  
                        > [1] N + [2] X + [5]  
                        = add(N,purge(rm(N,X)))
        
        
        Following rules are (at-least) weakly oriented:
                     eq(0(),0()) =  [0]                     
                                 >= [0]                     
                                 =  true()                  
        
                    eq(0(),s(X)) =  [0]                     
                                 >= [0]                     
                                 =  false()                 
        
                    eq(s(X),0()) =  [0]                     
                                 >= [0]                     
                                 =  false()                 
        
                   eq(s(X),s(Y)) =  [0]                     
                                 >= [0]                     
                                 =  eq(X,Y)                 
        
        ifrm(false(),N,add(M,X)) =  [1] M + [1] X + [4]     
                                 >= [1] M + [1] X + [4]     
                                 =  add(M,rm(N,X))          
        
         ifrm(true(),N,add(M,X)) =  [1] M + [1] X + [4]     
                                 >= [1] X + [0]             
                                 =  rm(N,X)                 
        
                    purge(nil()) =  [3]                     
                                 >= [1]                     
                                 =  nil()                   
        
                  rm(N,add(M,X)) =  [1] M + [1] X + [4]     
                                 >= [1] M + [1] X + [4]     
                                 =  ifrm(eq(N,M),N,add(M,X))
        
                     rm(N,nil()) =  [1]                     
                                 >= [1]                     
                                 =  nil()                   
        
** Step 1.b:5: MI WORST_CASE(?,O(n^2))
    + Considered Problem:
        - Strict TRS:
            eq(s(X),s(Y)) -> eq(X,Y)
            rm(N,add(M,X)) -> ifrm(eq(N,M),N,add(M,X))
        - Weak TRS:
            eq(0(),0()) -> true()
            eq(0(),s(X)) -> false()
            eq(s(X),0()) -> false()
            ifrm(false(),N,add(M,X)) -> add(M,rm(N,X))
            ifrm(true(),N,add(M,X)) -> rm(N,X)
            purge(add(N,X)) -> add(N,purge(rm(N,X)))
            purge(nil()) -> nil()
            rm(N,nil()) -> nil()
        - Signature:
            {eq/2,ifrm/3,purge/1,rm/2} / {0/0,add/2,false/0,nil/0,s/1,true/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {eq,ifrm,purge,rm} and constructors {0,add,false,nil,s
            ,true}
    + Applied Processor:
        MI {miKind = MaximalMatrix (UpperTriangular (Multiplicity Nothing)), miDimension = 2, miUArgs = UArgs, miURules = URules, miSelector = Just any strict-rules}
    + Details:
        We apply a matrix interpretation of kind MaximalMatrix (UpperTriangular (Multiplicity Nothing)):
        
        The following argument positions are considered usable:
          uargs(add) = {2},
          uargs(ifrm) = {1},
          uargs(purge) = {1}
        
        Following symbols are considered usable:
          {eq,ifrm,purge,rm}
        TcT has computed the following interpretation:
              p(0) = [0]                                    
                     [0]                                    
            p(add) = [1 4] x_1 + [1 4] x_2 + [0]            
                     [0 0]       [0 1]       [4]            
             p(eq) = [2]                                    
                     [0]                                    
          p(false) = [2]                                    
                     [0]                                    
           p(ifrm) = [2 0] x_1 + [0 2] x_2 + [1 2] x_3 + [0]
                     [0 0]       [0 0]       [0 1]       [0]
            p(nil) = [1]                                    
                     [0]                                    
          p(purge) = [2 3] x_1 + [2]                        
                     [0 1]       [0]                        
             p(rm) = [0 2] x_1 + [1 2] x_2 + [5]            
                     [0 0]       [0 1]       [0]            
              p(s) = [0]                                    
                     [2]                                    
           p(true) = [2]                                    
                     [0]                                    
        
        Following rules are strictly oriented:
        rm(N,add(M,X)) = [1 4] M + [0 2] N + [1 6] X + [13]
                         [0 0]     [0 0]     [0 1]     [4] 
                       > [1 4] M + [0 2] N + [1 6] X + [12]
                         [0 0]     [0 0]     [0 1]     [4] 
                       = ifrm(eq(N,M),N,add(M,X))          
        
        
        Following rules are (at-least) weakly oriented:
                     eq(0(),0()) =  [2]                               
                                    [0]                               
                                 >= [2]                               
                                    [0]                               
                                 =  true()                            
        
                    eq(0(),s(X)) =  [2]                               
                                    [0]                               
                                 >= [2]                               
                                    [0]                               
                                 =  false()                           
        
                    eq(s(X),0()) =  [2]                               
                                    [0]                               
                                 >= [2]                               
                                    [0]                               
                                 =  false()                           
        
                   eq(s(X),s(Y)) =  [2]                               
                                    [0]                               
                                 >= [2]                               
                                    [0]                               
                                 =  eq(X,Y)                           
        
        ifrm(false(),N,add(M,X)) =  [1 4] M + [0 2] N + [1 6] X + [12]
                                    [0 0]     [0 0]     [0 1]     [4] 
                                 >= [1 4] M + [0 2] N + [1 6] X + [5] 
                                    [0 0]     [0 0]     [0 1]     [4] 
                                 =  add(M,rm(N,X))                    
        
         ifrm(true(),N,add(M,X)) =  [1 4] M + [0 2] N + [1 6] X + [12]
                                    [0 0]     [0 0]     [0 1]     [4] 
                                 >= [0 2] N + [1 2] X + [5]           
                                    [0 0]     [0 1]     [0]           
                                 =  rm(N,X)                           
        
                 purge(add(N,X)) =  [2 8] N + [2 11] X + [14]         
                                    [0 0]     [0  1]     [4]          
                                 >= [1 8] N + [2 11] X + [12]         
                                    [0 0]     [0  1]     [4]          
                                 =  add(N,purge(rm(N,X)))             
        
                    purge(nil()) =  [4]                               
                                    [0]                               
                                 >= [1]                               
                                    [0]                               
                                 =  nil()                             
        
                     rm(N,nil()) =  [0 2] N + [6]                     
                                    [0 0]     [0]                     
                                 >= [1]                               
                                    [0]                               
                                 =  nil()                             
        
** Step 1.b:6: MI WORST_CASE(?,O(n^2))
    + Considered Problem:
        - Strict TRS:
            eq(s(X),s(Y)) -> eq(X,Y)
        - Weak TRS:
            eq(0(),0()) -> true()
            eq(0(),s(X)) -> false()
            eq(s(X),0()) -> false()
            ifrm(false(),N,add(M,X)) -> add(M,rm(N,X))
            ifrm(true(),N,add(M,X)) -> rm(N,X)
            purge(add(N,X)) -> add(N,purge(rm(N,X)))
            purge(nil()) -> nil()
            rm(N,add(M,X)) -> ifrm(eq(N,M),N,add(M,X))
            rm(N,nil()) -> nil()
        - Signature:
            {eq/2,ifrm/3,purge/1,rm/2} / {0/0,add/2,false/0,nil/0,s/1,true/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {eq,ifrm,purge,rm} and constructors {0,add,false,nil,s
            ,true}
    + 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(add) = {2},
          uargs(ifrm) = {1},
          uargs(purge) = {1}
        
        Following symbols are considered usable:
          {eq,ifrm,purge,rm}
        TcT has computed the following interpretation:
              p(0) = [2]                                          
                     [0]                                          
                     [5]                                          
            p(add) = [0 2 0]       [1 0 2]       [0]              
                     [0 0 0] x_1 + [0 0 1] x_2 + [1]              
                     [0 0 1]       [0 0 1]       [5]              
             p(eq) = [0 0 0]       [0 0 1]       [0]              
                     [0 0 2] x_1 + [1 0 0] x_2 + [2]              
                     [4 0 0]       [3 0 0]       [1]              
          p(false) = [1]                                          
                     [6]                                          
                     [0]                                          
           p(ifrm) = [1 0 0]       [0 0 0]       [1 1 0]       [4]
                     [0 0 0] x_1 + [0 1 0] x_2 + [0 0 1] x_3 + [0]
                     [0 0 0]       [0 0 0]       [0 0 1]       [0]
            p(nil) = [0]                                          
                     [0]                                          
                     [4]                                          
          p(purge) = [4 4 1]       [2]                            
                     [0 0 2] x_1 + [4]                            
                     [0 0 1]       [3]                            
             p(rm) = [0 0 0]       [1 0 1]       [0]              
                     [0 1 0] x_1 + [0 0 1] x_2 + [0]              
                     [0 0 0]       [0 0 1]       [0]              
              p(s) = [1 0 2]       [2]                            
                     [0 0 1] x_1 + [1]                            
                     [0 0 1]       [1]                            
           p(true) = [5]                                          
                     [4]                                          
                     [0]                                          
        
        Following rules are strictly oriented:
        eq(s(X),s(Y)) = [0 0 0]     [0 0 1]     [1] 
                        [0 0 2] X + [1 0 2] Y + [6] 
                        [4 0 8]     [3 0 6]     [15]
                      > [0 0 0]     [0 0 1]     [0] 
                        [0 0 2] X + [1 0 0] Y + [2] 
                        [4 0 0]     [3 0 0]     [1] 
                      = eq(X,Y)                     
        
        
        Following rules are (at-least) weakly oriented:
                     eq(0(),0()) =  [5]                                     
                                    [14]                                    
                                    [15]                                    
                                 >= [5]                                     
                                    [4]                                     
                                    [0]                                     
                                 =  true()                                  
        
                    eq(0(),s(X)) =  [0 0 1]     [1]                         
                                    [1 0 2] X + [14]                        
                                    [3 0 6]     [15]                        
                                 >= [1]                                     
                                    [6]                                     
                                    [0]                                     
                                 =  false()                                 
        
                    eq(s(X),0()) =  [0 0 0]     [5]                         
                                    [0 0 2] X + [6]                         
                                    [4 0 8]     [15]                        
                                 >= [1]                                     
                                    [6]                                     
                                    [0]                                     
                                 =  false()                                 
        
        ifrm(false(),N,add(M,X)) =  [0 2 0]     [0 0 0]     [1 0 3]     [6] 
                                    [0 0 1] M + [0 1 0] N + [0 0 1] X + [5] 
                                    [0 0 1]     [0 0 0]     [0 0 1]     [5] 
                                 >= [0 2 0]     [1 0 3]     [0]             
                                    [0 0 0] M + [0 0 1] X + [1]             
                                    [0 0 1]     [0 0 1]     [5]             
                                 =  add(M,rm(N,X))                          
        
         ifrm(true(),N,add(M,X)) =  [0 2 0]     [0 0 0]     [1 0 3]     [10]
                                    [0 0 1] M + [0 1 0] N + [0 0 1] X + [5] 
                                    [0 0 1]     [0 0 0]     [0 0 1]     [5] 
                                 >= [0 0 0]     [1 0 1]     [0]             
                                    [0 1 0] N + [0 0 1] X + [0]             
                                    [0 0 0]     [0 0 1]     [0]             
                                 =  rm(N,X)                                 
        
                 purge(add(N,X)) =  [0 8 1]     [4 0 13]     [11]           
                                    [0 0 2] N + [0 0  2] X + [14]           
                                    [0 0 1]     [0 0  1]     [8]            
                                 >= [0 6 0]     [4 0 11]     [8]            
                                    [0 0 0] N + [0 0  1] X + [4]            
                                    [0 0 1]     [0 0  1]     [8]            
                                 =  add(N,purge(rm(N,X)))                   
        
                    purge(nil()) =  [6]                                     
                                    [12]                                    
                                    [7]                                     
                                 >= [0]                                     
                                    [0]                                     
                                    [4]                                     
                                 =  nil()                                   
        
                  rm(N,add(M,X)) =  [0 2 1]     [0 0 0]     [1 0 3]     [5] 
                                    [0 0 1] M + [0 1 0] N + [0 0 1] X + [5] 
                                    [0 0 1]     [0 0 0]     [0 0 1]     [5] 
                                 >= [0 2 1]     [0 0 0]     [1 0 3]     [5] 
                                    [0 0 1] M + [0 1 0] N + [0 0 1] X + [5] 
                                    [0 0 1]     [0 0 0]     [0 0 1]     [5] 
                                 =  ifrm(eq(N,M),N,add(M,X))                
        
                     rm(N,nil()) =  [0 0 0]     [4]                         
                                    [0 1 0] N + [4]                         
                                    [0 0 0]     [4]                         
                                 >= [0]                                     
                                    [0]                                     
                                    [4]                                     
                                 =  nil()                                   
        
** Step 1.b:7: EmptyProcessor WORST_CASE(?,O(1))
    + Considered Problem:
        - Weak TRS:
            eq(0(),0()) -> true()
            eq(0(),s(X)) -> false()
            eq(s(X),0()) -> false()
            eq(s(X),s(Y)) -> eq(X,Y)
            ifrm(false(),N,add(M,X)) -> add(M,rm(N,X))
            ifrm(true(),N,add(M,X)) -> rm(N,X)
            purge(add(N,X)) -> add(N,purge(rm(N,X)))
            purge(nil()) -> nil()
            rm(N,add(M,X)) -> ifrm(eq(N,M),N,add(M,X))
            rm(N,nil()) -> nil()
        - Signature:
            {eq/2,ifrm/3,purge/1,rm/2} / {0/0,add/2,false/0,nil/0,s/1,true/0}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {eq,ifrm,purge,rm} and constructors {0,add,false,nil,s
            ,true}
    + Applied Processor:
        EmptyProcessor
    + Details:
        The problem is already closed. The intended complexity is O(1).

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