* Step 1: Sum WORST_CASE(Omega(n^1),O(n^2))
    + Considered Problem:
        - Strict TRS:
            a__f(X1,X2) -> f(X1,X2)
            a__f(g(X),Y) -> a__f(mark(X),f(g(X),Y))
            mark(f(X1,X2)) -> a__f(mark(X1),X2)
            mark(g(X)) -> g(mark(X))
        - Signature:
            {a__f/2,mark/1} / {f/2,g/1}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {a__f,mark} and constructors {f,g}
    + Applied Processor:
        Sum {left = someStrategy, right = someStrategy}
    + Details:
        ()
** Step 1.a:1: DecreasingLoops WORST_CASE(Omega(n^1),?)
    + Considered Problem:
        - Strict TRS:
            a__f(X1,X2) -> f(X1,X2)
            a__f(g(X),Y) -> a__f(mark(X),f(g(X),Y))
            mark(f(X1,X2)) -> a__f(mark(X1),X2)
            mark(g(X)) -> g(mark(X))
        - Signature:
            {a__f/2,mark/1} / {f/2,g/1}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {a__f,mark} and constructors {f,g}
    + Applied Processor:
        DecreasingLoops {bound = AnyLoop, narrow = 10}
    + Details:
        The system has following decreasing Loops:
          mark(x){x -> f(x,y)} =
            mark(f(x,y)) ->^+ a__f(mark(x),y)
              = C[mark(x) = mark(x){}]

** Step 1.b:1: WeightGap WORST_CASE(?,O(n^2))
    + Considered Problem:
        - Strict TRS:
            a__f(X1,X2) -> f(X1,X2)
            a__f(g(X),Y) -> a__f(mark(X),f(g(X),Y))
            mark(f(X1,X2)) -> a__f(mark(X1),X2)
            mark(g(X)) -> g(mark(X))
        - Signature:
            {a__f/2,mark/1} / {f/2,g/1}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {a__f,mark} and constructors {f,g}
    + 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__f) = {1},
            uargs(g) = {1}
          
          Following symbols are considered usable:
            all
          TcT has computed the following interpretation:
            p(a__f) = [1] x1 + [0] 
               p(f) = [1] x1 + [15]
               p(g) = [1] x1 + [0] 
            p(mark) = [1] x1 + [8] 
          
          Following rules are strictly oriented:
          mark(f(X1,X2)) = [1] X1 + [23]    
                         > [1] X1 + [8]     
                         = a__f(mark(X1),X2)
          
          
          Following rules are (at-least) weakly oriented:
           a__f(X1,X2) =  [1] X1 + [0]           
                       >= [1] X1 + [15]          
                       =  f(X1,X2)               
          
          a__f(g(X),Y) =  [1] X + [0]            
                       >= [1] X + [8]            
                       =  a__f(mark(X),f(g(X),Y))
          
            mark(g(X)) =  [1] X + [8]            
                       >= [1] X + [8]            
                       =  g(mark(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:
            a__f(X1,X2) -> f(X1,X2)
            a__f(g(X),Y) -> a__f(mark(X),f(g(X),Y))
            mark(g(X)) -> g(mark(X))
        - Weak TRS:
            mark(f(X1,X2)) -> a__f(mark(X1),X2)
        - Signature:
            {a__f/2,mark/1} / {f/2,g/1}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {a__f,mark} and constructors {f,g}
    + 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__f) = {1},
            uargs(g) = {1}
          
          Following symbols are considered usable:
            all
          TcT has computed the following interpretation:
            p(a__f) = [1] x1 + [8]
               p(f) = [1] x1 + [9]
               p(g) = [1] x1 + [1]
            p(mark) = [1] x1 + [0]
          
          Following rules are strictly oriented:
          a__f(g(X),Y) = [1] X + [9]            
                       > [1] X + [8]            
                       = a__f(mark(X),f(g(X),Y))
          
          
          Following rules are (at-least) weakly oriented:
             a__f(X1,X2) =  [1] X1 + [8]     
                         >= [1] X1 + [9]     
                         =  f(X1,X2)         
          
          mark(f(X1,X2)) =  [1] X1 + [9]     
                         >= [1] X1 + [8]     
                         =  a__f(mark(X1),X2)
          
              mark(g(X)) =  [1] X + [1]      
                         >= [1] X + [1]      
                         =  g(mark(X))       
          
        Further, it can be verified that all rules not oriented are covered by the weightgap condition.
** Step 1.b:3: MI WORST_CASE(?,O(n^2))
    + Considered Problem:
        - Strict TRS:
            a__f(X1,X2) -> f(X1,X2)
            mark(g(X)) -> g(mark(X))
        - Weak TRS:
            a__f(g(X),Y) -> a__f(mark(X),f(g(X),Y))
            mark(f(X1,X2)) -> a__f(mark(X1),X2)
        - Signature:
            {a__f/2,mark/1} / {f/2,g/1}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {a__f,mark} and constructors {f,g}
    + 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(a__f) = {1},
          uargs(g) = {1}
        
        Following symbols are considered usable:
          {a__f,mark}
        TcT has computed the following interpretation:
          p(a__f) = [1 8] x_1 + [0]
                    [0 1]       [0]
             p(f) = [1 8] x_1 + [0]
                    [0 1]       [0]
             p(g) = [1 1] x_1 + [3]
                    [0 1]       [1]
          p(mark) = [1 1] x_1 + [1]
                    [0 1]       [0]
        
        Following rules are strictly oriented:
        mark(g(X)) = [1 2] X + [5]
                     [0 1]     [1]
                   > [1 2] X + [4]
                     [0 1]     [1]
                   = g(mark(X))   
        
        
        Following rules are (at-least) weakly oriented:
           a__f(X1,X2) =  [1 8] X1 + [0]         
                          [0 1]      [0]         
                       >= [1 8] X1 + [0]         
                          [0 1]      [0]         
                       =  f(X1,X2)               
        
          a__f(g(X),Y) =  [1 9] X + [11]         
                          [0 1]     [1]          
                       >= [1 9] X + [1]          
                          [0 1]     [0]          
                       =  a__f(mark(X),f(g(X),Y))
        
        mark(f(X1,X2)) =  [1 9] X1 + [1]         
                          [0 1]      [0]         
                       >= [1 9] X1 + [1]         
                          [0 1]      [0]         
                       =  a__f(mark(X1),X2)      
        
** Step 1.b:4: MI WORST_CASE(?,O(n^2))
    + Considered Problem:
        - Strict TRS:
            a__f(X1,X2) -> f(X1,X2)
        - Weak TRS:
            a__f(g(X),Y) -> a__f(mark(X),f(g(X),Y))
            mark(f(X1,X2)) -> a__f(mark(X1),X2)
            mark(g(X)) -> g(mark(X))
        - Signature:
            {a__f/2,mark/1} / {f/2,g/1}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {a__f,mark} and constructors {f,g}
    + 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(a__f) = {1},
          uargs(g) = {1}
        
        Following symbols are considered usable:
          {a__f,mark}
        TcT has computed the following interpretation:
          p(a__f) = [1 1] x_1 + [0 2] x_2 + [2]
                    [0 1]       [0 0]       [2]
             p(f) = [1 1] x_1 + [0 2] x_2 + [0]
                    [0 1]       [0 0]       [2]
             p(g) = [1 8] x_1 + [8]            
                    [0 1]       [0]            
          p(mark) = [1 3] x_1 + [4]            
                    [0 1]       [0]            
        
        Following rules are strictly oriented:
        a__f(X1,X2) = [1 1] X1 + [0 2] X2 + [2]
                      [0 1]      [0 0]      [2]
                    > [1 1] X1 + [0 2] X2 + [0]
                      [0 1]      [0 0]      [2]
                    = f(X1,X2)                 
        
        
        Following rules are (at-least) weakly oriented:
          a__f(g(X),Y) =  [1 9] X + [0 2] Y + [10]  
                          [0 1]     [0 0]     [2]   
                       >= [1 6] X + [10]            
                          [0 1]     [2]             
                       =  a__f(mark(X),f(g(X),Y))   
        
        mark(f(X1,X2)) =  [1 4] X1 + [0 2] X2 + [10]
                          [0 1]      [0 0]      [2] 
                       >= [1 4] X1 + [0 2] X2 + [6] 
                          [0 1]      [0 0]      [2] 
                       =  a__f(mark(X1),X2)         
        
            mark(g(X)) =  [1 11] X + [12]           
                          [0  1]     [0]            
                       >= [1 11] X + [12]           
                          [0  1]     [0]            
                       =  g(mark(X))                
        
** Step 1.b:5: EmptyProcessor WORST_CASE(?,O(1))
    + Considered Problem:
        - Weak TRS:
            a__f(X1,X2) -> f(X1,X2)
            a__f(g(X),Y) -> a__f(mark(X),f(g(X),Y))
            mark(f(X1,X2)) -> a__f(mark(X1),X2)
            mark(g(X)) -> g(mark(X))
        - Signature:
            {a__f/2,mark/1} / {f/2,g/1}
        - Obligation:
            innermost runtime complexity wrt. defined symbols {a__f,mark} and constructors {f,g}
    + Applied Processor:
        EmptyProcessor
    + Details:
        The problem is already closed. The intended complexity is O(1).

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