*** 1 Progress [(O(1),O(n^2))]  ***
    Considered Problem:
      Strict DP Rules:
        
      Strict TRS Rules:
        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))
      Weak DP Rules:
        
      Weak TRS Rules:
        
      Signature:
        {a__f/2,mark/1} / {f/2,g/1}
      Obligation:
        Innermost
        basic terms: {a__f,mark}/{f,g}
    Applied Processor:
      WeightGap {wgDimension = 1, wgDegree = 1, wgKind = Algebraic, wgUArgs = UArgs, wgOn = WgOnAny}
    Proof:
      The weightgap principle applies using the following nonconstant growth matrix-interpretation:
        We apply a matrix interpretation of kind constructor based matrix interpretation:
        The following argument positions are considered usable:
          uargs(a__f) = {1},
          uargs(g) = {1}
        
        Following symbols are considered usable:
          {}
        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.
*** 1.1 Progress [(O(1),O(n^2))]  ***
    Considered Problem:
      Strict DP Rules:
        
      Strict TRS Rules:
        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 DP Rules:
        
      Weak TRS Rules:
        mark(f(X1,X2)) -> a__f(mark(X1),X2)
      Signature:
        {a__f/2,mark/1} / {f/2,g/1}
      Obligation:
        Innermost
        basic terms: {a__f,mark}/{f,g}
    Applied Processor:
      WeightGap {wgDimension = 1, wgDegree = 1, wgKind = Algebraic, wgUArgs = UArgs, wgOn = WgOnAny}
    Proof:
      The weightgap principle applies using the following nonconstant growth matrix-interpretation:
        We apply a matrix interpretation of kind constructor based matrix interpretation:
        The following argument positions are considered usable:
          uargs(a__f) = {1},
          uargs(g) = {1}
        
        Following symbols are considered usable:
          {}
        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.
*** 1.1.1 Progress [(O(1),O(n^2))]  ***
    Considered Problem:
      Strict DP Rules:
        
      Strict TRS Rules:
        a__f(X1,X2) -> f(X1,X2)
        mark(g(X)) -> g(mark(X))
      Weak DP Rules:
        
      Weak TRS Rules:
        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
        basic terms: {a__f,mark}/{f,g}
    Applied Processor:
      NaturalMI {miDimension = 2, miDegree = 2, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Just any strict-rules, greedy = NoGreedy}
    Proof:
      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:
        {a__f,mark}
      TcT has computed the following interpretation:
        p(a__f) = [1 0] x1 + [4]
                  [0 1]      [0]
           p(f) = [1 0] x1 + [4]
                  [0 1]      [0]
           p(g) = [1 4] x1 + [5]
                  [0 1]      [2]
        p(mark) = [1 4] x1 + [0]
                  [0 1]      [0]
      
      Following rules are strictly oriented:
      mark(g(X)) = [1 8] X + [13]
                   [0 1]     [2] 
                 > [1 8] X + [5] 
                   [0 1]     [2] 
                 = g(mark(X))    
      
      
      Following rules are (at-least) weakly oriented:
         a__f(X1,X2) =  [1 0] X1 + [4]         
                        [0 1]      [0]         
                     >= [1 0] X1 + [4]         
                        [0 1]      [0]         
                     =  f(X1,X2)               
      
        a__f(g(X),Y) =  [1 4] X + [9]          
                        [0 1]     [2]          
                     >= [1 4] X + [4]          
                        [0 1]     [0]          
                     =  a__f(mark(X),f(g(X),Y))
      
      mark(f(X1,X2)) =  [1 4] X1 + [4]         
                        [0 1]      [0]         
                     >= [1 4] X1 + [4]         
                        [0 1]      [0]         
                     =  a__f(mark(X1),X2)      
      
*** 1.1.1.1 Progress [(O(1),O(n^2))]  ***
    Considered Problem:
      Strict DP Rules:
        
      Strict TRS Rules:
        a__f(X1,X2) -> f(X1,X2)
      Weak DP Rules:
        
      Weak TRS Rules:
        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
        basic terms: {a__f,mark}/{f,g}
    Applied Processor:
      NaturalMI {miDimension = 2, miDegree = 2, miKind = Algebraic, uargs = UArgs, urules = URules, selector = Just any strict-rules, greedy = NoGreedy}
    Proof:
      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:
        {a__f,mark}
      TcT has computed the following interpretation:
        p(a__f) = [1 0] x1 + [3]
                  [0 1]      [2]
           p(f) = [1 0] x1 + [0]
                  [0 1]      [2]
           p(g) = [1 6] x1 + [7]
                  [0 1]      [0]
        p(mark) = [1 4] x1 + [7]
                  [0 1]      [0]
      
      Following rules are strictly oriented:
      a__f(X1,X2) = [1 0] X1 + [3]
                    [0 1]      [2]
                  > [1 0] X1 + [0]
                    [0 1]      [2]
                  = f(X1,X2)      
      
      
      Following rules are (at-least) weakly oriented:
        a__f(g(X),Y) =  [1 6] X + [10]         
                        [0 1]     [2]          
                     >= [1 4] X + [10]         
                        [0 1]     [2]          
                     =  a__f(mark(X),f(g(X),Y))
      
      mark(f(X1,X2)) =  [1 4] X1 + [15]        
                        [0 1]      [2]         
                     >= [1 4] X1 + [10]        
                        [0 1]      [2]         
                     =  a__f(mark(X1),X2)      
      
          mark(g(X)) =  [1 10] X + [14]        
                        [0  1]     [0]         
                     >= [1 10] X + [14]        
                        [0  1]     [0]         
                     =  g(mark(X))             
      
*** 1.1.1.1.1 Progress [(O(1),O(1))]  ***
    Considered Problem:
      Strict DP Rules:
        
      Strict TRS Rules:
        
      Weak DP Rules:
        
      Weak TRS Rules:
        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
        basic terms: {a__f,mark}/{f,g}
    Applied Processor:
      EmptyProcessor
    Proof:
      The problem is already closed. The intended complexity is O(1).