*** 1 Progress [(O(1),O(n^1))]  ***
    Considered Problem:
      Strict DP Rules:
        
      Strict TRS Rules:
        a__b() -> a()
        a__b() -> b()
        a__f(X1,X2,X3) -> f(X1,X2,X3)
        a__f(a(),X,X) -> a__f(X,a__b(),b())
        mark(a()) -> a()
        mark(b()) -> a__b()
        mark(f(X1,X2,X3)) -> a__f(X1,mark(X2),X3)
      Weak DP Rules:
        
      Weak TRS Rules:
        
      Signature:
        {a__b/0,a__f/3,mark/1} / {a/0,b/0,f/3}
      Obligation:
        Full
        basic terms: {a__b,a__f,mark}/{a,b,f}
    Applied Processor:
      ToInnermost
    Proof:
      switch to innermost, as the system is overlay and right linear and does not contain weak rules
*** 1.1 Progress [(O(1),O(n^1))]  ***
    Considered Problem:
      Strict DP Rules:
        
      Strict TRS Rules:
        a__b() -> a()
        a__b() -> b()
        a__f(X1,X2,X3) -> f(X1,X2,X3)
        a__f(a(),X,X) -> a__f(X,a__b(),b())
        mark(a()) -> a()
        mark(b()) -> a__b()
        mark(f(X1,X2,X3)) -> a__f(X1,mark(X2),X3)
      Weak DP Rules:
        
      Weak TRS Rules:
        
      Signature:
        {a__b/0,a__f/3,mark/1} / {a/0,b/0,f/3}
      Obligation:
        Innermost
        basic terms: {a__b,a__f,mark}/{a,b,f}
    Applied Processor:
      NaturalMI {miDimension = 1, miDegree = 1, 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) = {2}
      
      Following symbols are considered usable:
        {a__b,a__f,mark}
      TcT has computed the following interpretation:
           p(a) = [0]         
        p(a__b) = [0]         
        p(a__f) = [1] x2 + [0]
           p(b) = [0]         
           p(f) = [0]         
        p(mark) = [8]         
      
      Following rules are strictly oriented:
      mark(a()) = [8]   
                > [0]   
                = a()   
      
      mark(b()) = [8]   
                > [0]   
                = a__b()
      
      
      Following rules are (at-least) weakly oriented:
                 a__b() =  [0]                 
                        >= [0]                 
                        =  a()                 
      
                 a__b() =  [0]                 
                        >= [0]                 
                        =  b()                 
      
         a__f(X1,X2,X3) =  [1] X2 + [0]        
                        >= [0]                 
                        =  f(X1,X2,X3)         
      
          a__f(a(),X,X) =  [1] X + [0]         
                        >= [0]                 
                        =  a__f(X,a__b(),b())  
      
      mark(f(X1,X2,X3)) =  [8]                 
                        >= [8]                 
                        =  a__f(X1,mark(X2),X3)
      
*** 1.1.1 Progress [(O(1),O(n^1))]  ***
    Considered Problem:
      Strict DP Rules:
        
      Strict TRS Rules:
        a__b() -> a()
        a__b() -> b()
        a__f(X1,X2,X3) -> f(X1,X2,X3)
        a__f(a(),X,X) -> a__f(X,a__b(),b())
        mark(f(X1,X2,X3)) -> a__f(X1,mark(X2),X3)
      Weak DP Rules:
        
      Weak TRS Rules:
        mark(a()) -> a()
        mark(b()) -> a__b()
      Signature:
        {a__b/0,a__f/3,mark/1} / {a/0,b/0,f/3}
      Obligation:
        Innermost
        basic terms: {a__b,a__f,mark}/{a,b,f}
    Applied Processor:
      NaturalMI {miDimension = 1, miDegree = 1, 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) = {2}
      
      Following symbols are considered usable:
        {a__b,a__f,mark}
      TcT has computed the following interpretation:
           p(a) = [2]                           
        p(a__b) = [2]                           
        p(a__f) = [8] x1 + [1] x2 + [8] x3 + [2]
           p(b) = [0]                           
           p(f) = [1] x1 + [1] x2 + [1] x3 + [2]
        p(mark) = [8] x1 + [2]                  
      
      Following rules are strictly oriented:
                 a__b() = [2]                            
                        > [0]                            
                        = b()                            
      
          a__f(a(),X,X) = [9] X + [18]                   
                        > [8] X + [4]                    
                        = a__f(X,a__b(),b())             
      
      mark(f(X1,X2,X3)) = [8] X1 + [8] X2 + [8] X3 + [18]
                        > [8] X1 + [8] X2 + [8] X3 + [4] 
                        = a__f(X1,mark(X2),X3)           
      
      
      Following rules are (at-least) weakly oriented:
              a__b() =  [2]                           
                     >= [2]                           
                     =  a()                           
      
      a__f(X1,X2,X3) =  [8] X1 + [1] X2 + [8] X3 + [2]
                     >= [1] X1 + [1] X2 + [1] X3 + [2]
                     =  f(X1,X2,X3)                   
      
           mark(a()) =  [18]                          
                     >= [2]                           
                     =  a()                           
      
           mark(b()) =  [2]                           
                     >= [2]                           
                     =  a__b()                        
      
*** 1.1.1.1 Progress [(O(1),O(n^1))]  ***
    Considered Problem:
      Strict DP Rules:
        
      Strict TRS Rules:
        a__b() -> a()
        a__f(X1,X2,X3) -> f(X1,X2,X3)
      Weak DP Rules:
        
      Weak TRS Rules:
        a__b() -> b()
        a__f(a(),X,X) -> a__f(X,a__b(),b())
        mark(a()) -> a()
        mark(b()) -> a__b()
        mark(f(X1,X2,X3)) -> a__f(X1,mark(X2),X3)
      Signature:
        {a__b/0,a__f/3,mark/1} / {a/0,b/0,f/3}
      Obligation:
        Innermost
        basic terms: {a__b,a__f,mark}/{a,b,f}
    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) = {2}
        
        Following symbols are considered usable:
          {}
        TcT has computed the following interpretation:
             p(a) = [6]                           
          p(a__b) = [0]                           
          p(a__f) = [1] x1 + [1] x2 + [1] x3 + [3]
             p(b) = [0]                           
             p(f) = [1] x1 + [1] x2 + [1] x3 + [2]
          p(mark) = [2] x1 + [3]                  
        
        Following rules are strictly oriented:
        a__f(X1,X2,X3) = [1] X1 + [1] X2 + [1] X3 + [3]
                       > [1] X1 + [1] X2 + [1] X3 + [2]
                       = f(X1,X2,X3)                   
        
        
        Following rules are (at-least) weakly oriented:
                   a__b() =  [0]                           
                          >= [6]                           
                          =  a()                           
        
                   a__b() =  [0]                           
                          >= [0]                           
                          =  b()                           
        
            a__f(a(),X,X) =  [2] X + [9]                   
                          >= [1] X + [3]                   
                          =  a__f(X,a__b(),b())            
        
                mark(a()) =  [15]                          
                          >= [6]                           
                          =  a()                           
        
                mark(b()) =  [3]                           
                          >= [0]                           
                          =  a__b()                        
        
        mark(f(X1,X2,X3)) =  [2] X1 + [2] X2 + [2] X3 + [7]
                          >= [1] X1 + [2] X2 + [1] X3 + [6]
                          =  a__f(X1,mark(X2),X3)          
        
      Further, it can be verified that all rules not oriented are covered by the weightgap condition.
*** 1.1.1.1.1 Progress [(O(1),O(n^1))]  ***
    Considered Problem:
      Strict DP Rules:
        
      Strict TRS Rules:
        a__b() -> a()
      Weak DP Rules:
        
      Weak TRS Rules:
        a__b() -> b()
        a__f(X1,X2,X3) -> f(X1,X2,X3)
        a__f(a(),X,X) -> a__f(X,a__b(),b())
        mark(a()) -> a()
        mark(b()) -> a__b()
        mark(f(X1,X2,X3)) -> a__f(X1,mark(X2),X3)
      Signature:
        {a__b/0,a__f/3,mark/1} / {a/0,b/0,f/3}
      Obligation:
        Innermost
        basic terms: {a__b,a__f,mark}/{a,b,f}
    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) = {2}
        
        Following symbols are considered usable:
          {}
        TcT has computed the following interpretation:
             p(a) = [4]                            
          p(a__b) = [8]                            
          p(a__f) = [4] x1 + [1] x2 + [3] x3 + [15]
             p(b) = [1]                            
             p(f) = [1] x1 + [1] x2 + [1] x3 + [5] 
          p(mark) = [4] x1 + [4]                   
        
        Following rules are strictly oriented:
        a__b() = [8]
               > [4]
               = a()
        
        
        Following rules are (at-least) weakly oriented:
                   a__b() =  [8]                            
                          >= [1]                            
                          =  b()                            
        
           a__f(X1,X2,X3) =  [4] X1 + [1] X2 + [3] X3 + [15]
                          >= [1] X1 + [1] X2 + [1] X3 + [5] 
                          =  f(X1,X2,X3)                    
        
            a__f(a(),X,X) =  [4] X + [31]                   
                          >= [4] X + [26]                   
                          =  a__f(X,a__b(),b())             
        
                mark(a()) =  [20]                           
                          >= [4]                            
                          =  a()                            
        
                mark(b()) =  [8]                            
                          >= [8]                            
                          =  a__b()                         
        
        mark(f(X1,X2,X3)) =  [4] X1 + [4] X2 + [4] X3 + [24]
                          >= [4] X1 + [4] X2 + [3] X3 + [19]
                          =  a__f(X1,mark(X2),X3)           
        
      Further, it can be verified that all rules not oriented are covered by the weightgap condition.
*** 1.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__b() -> a()
        a__b() -> b()
        a__f(X1,X2,X3) -> f(X1,X2,X3)
        a__f(a(),X,X) -> a__f(X,a__b(),b())
        mark(a()) -> a()
        mark(b()) -> a__b()
        mark(f(X1,X2,X3)) -> a__f(X1,mark(X2),X3)
      Signature:
        {a__b/0,a__f/3,mark/1} / {a/0,b/0,f/3}
      Obligation:
        Innermost
        basic terms: {a__b,a__f,mark}/{a,b,f}
    Applied Processor:
      EmptyProcessor
    Proof:
      The problem is already closed. The intended complexity is O(1).