*** 1 Progress [(O(1),O(1))]  ***
    Considered Problem:
      Strict DP Rules:
        
      Strict TRS Rules:
        b(X) -> a(X)
        f(a(g(X))) -> b(X)
        f(f(X)) -> f(a(b(f(X))))
      Weak DP Rules:
        
      Weak TRS Rules:
        
      Signature:
        {b/1,f/1} / {a/1,g/1}
      Obligation:
        Full
        basic terms: {b,f}/{a,g}
    Applied Processor:
      DependencyPairs {dpKind_ = DT}
    Proof:
      We add the following weak dependency pairs:
      
      Strict DPs
        b#(X) -> c_1(X)
        f#(a(g(X))) -> c_2(b#(X))
        f#(f(X)) -> c_3(f#(a(b(f(X)))))
      Weak DPs
        
      
      and mark the set of starting terms.
*** 1.1 Progress [(O(1),O(1))]  ***
    Considered Problem:
      Strict DP Rules:
        b#(X) -> c_1(X)
        f#(a(g(X))) -> c_2(b#(X))
        f#(f(X)) -> c_3(f#(a(b(f(X)))))
      Strict TRS Rules:
        b(X) -> a(X)
        f(a(g(X))) -> b(X)
        f(f(X)) -> f(a(b(f(X))))
      Weak DP Rules:
        
      Weak TRS Rules:
        
      Signature:
        {b/1,f/1,b#/1,f#/1} / {a/1,g/1,c_1/1,c_2/1,c_3/1}
      Obligation:
        Full
        basic terms: {b#,f#}/{a,g}
    Applied Processor:
      UsableRules
    Proof:
      We replace rewrite rules by usable rules:
        b#(X) -> c_1(X)
        f#(a(g(X))) -> c_2(b#(X))
*** 1.1.1 Progress [(O(1),O(1))]  ***
    Considered Problem:
      Strict DP Rules:
        b#(X) -> c_1(X)
        f#(a(g(X))) -> c_2(b#(X))
      Strict TRS Rules:
        
      Weak DP Rules:
        
      Weak TRS Rules:
        
      Signature:
        {b/1,f/1,b#/1,f#/1} / {a/1,g/1,c_1/1,c_2/1,c_3/1}
      Obligation:
        Full
        basic terms: {b#,f#}/{a,g}
    Applied Processor:
      WeightGap {wgDimension = 1, wgDegree = 0, wgKind = Algebraic, wgUArgs = UArgs, wgOn = WgOnAny}
    Proof:
      The weightgap principle applies using the following constant growth matrix-interpretation:
        We apply a matrix interpretation of kind constructor based matrix interpretation (containing no more than 0 non-zero interpretation-entries in the diagonal of the component-wise maxima):
        The following argument positions are considered usable:
          uargs(c_2) = {1}
        
        Following symbols are considered usable:
          {}
        TcT has computed the following interpretation:
            p(a) = [0]         
            p(b) = [0]         
            p(f) = [0]         
            p(g) = [0]         
           p(b#) = [0]         
           p(f#) = [1]         
          p(c_1) = [0]         
          p(c_2) = [1] x1 + [0]
          p(c_3) = [0]         
        
        Following rules are strictly oriented:
        f#(a(g(X))) = [1]       
                    > [0]       
                    = c_2(b#(X))
        
        
        Following rules are (at-least) weakly oriented:
        b#(X) =  [0]   
              >= [0]   
              =  c_1(X)
        
      Further, it can be verified that all rules not oriented are covered by the weightgap condition.
*** 1.1.1.1 Progress [(O(1),O(1))]  ***
    Considered Problem:
      Strict DP Rules:
        b#(X) -> c_1(X)
      Strict TRS Rules:
        
      Weak DP Rules:
        f#(a(g(X))) -> c_2(b#(X))
      Weak TRS Rules:
        
      Signature:
        {b/1,f/1,b#/1,f#/1} / {a/1,g/1,c_1/1,c_2/1,c_3/1}
      Obligation:
        Full
        basic terms: {b#,f#}/{a,g}
    Applied Processor:
      NaturalMI {miDimension = 1, miDegree = 0, 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 (containing no more than 0 non-zero interpretation-entries in the diagonal of the component-wise maxima):
      The following argument positions are considered usable:
        uargs(c_2) = {1}
      
      Following symbols are considered usable:
        {}
      TcT has computed the following interpretation:
          p(a) = [5]         
          p(b) = [1] x1 + [1]
          p(f) = [4] x1 + [2]
          p(g) = [2]         
         p(b#) = [3]         
         p(f#) = [2] x1 + [5]
        p(c_1) = [1]         
        p(c_2) = [2] x1 + [0]
        p(c_3) = [2] x1 + [0]
      
      Following rules are strictly oriented:
      b#(X) = [3]   
            > [1]   
            = c_1(X)
      
      
      Following rules are (at-least) weakly oriented:
      f#(a(g(X))) =  [15]      
                  >= [6]       
                  =  c_2(b#(X))
      
*** 1.1.1.1.1 Progress [(O(1),O(1))]  ***
    Considered Problem:
      Strict DP Rules:
        
      Strict TRS Rules:
        
      Weak DP Rules:
        b#(X) -> c_1(X)
        f#(a(g(X))) -> c_2(b#(X))
      Weak TRS Rules:
        
      Signature:
        {b/1,f/1,b#/1,f#/1} / {a/1,g/1,c_1/1,c_2/1,c_3/1}
      Obligation:
        Full
        basic terms: {b#,f#}/{a,g}
    Applied Processor:
      EmptyProcessor
    Proof:
      The problem is already closed. The intended complexity is O(1).