*** 1 Progress [(O(1),O(n^1))]  ***
    Considered Problem:
      Strict DP Rules:
        
      Strict TRS Rules:
        f(a()) -> g(h(a()))
        h(g(x)) -> g(h(f(x)))
        k(x,h(x),a()) -> h(x)
        k(f(x),y,x) -> f(x)
      Weak DP Rules:
        
      Weak TRS Rules:
        
      Signature:
        {f/1,h/1,k/3} / {a/0,g/1}
      Obligation:
        Full
        basic terms: {f,h,k}/{a,g}
    Applied Processor:
      DependencyPairs {dpKind_ = DT}
    Proof:
      We add the following weak dependency pairs:
      
      Strict DPs
        f#(a()) -> c_1(h#(a()))
        h#(g(x)) -> c_2(h#(f(x)))
        k#(x,h(x),a()) -> c_3(h#(x))
        k#(f(x),y,x) -> c_4(f#(x))
      Weak DPs
        
      
      and mark the set of starting terms.
*** 1.1 Progress [(O(1),O(n^1))]  ***
    Considered Problem:
      Strict DP Rules:
        f#(a()) -> c_1(h#(a()))
        h#(g(x)) -> c_2(h#(f(x)))
        k#(x,h(x),a()) -> c_3(h#(x))
        k#(f(x),y,x) -> c_4(f#(x))
      Strict TRS Rules:
        f(a()) -> g(h(a()))
        h(g(x)) -> g(h(f(x)))
        k(x,h(x),a()) -> h(x)
        k(f(x),y,x) -> f(x)
      Weak DP Rules:
        
      Weak TRS Rules:
        
      Signature:
        {f/1,h/1,k/3,f#/1,h#/1,k#/3} / {a/0,g/1,c_1/1,c_2/1,c_3/1,c_4/1}
      Obligation:
        Full
        basic terms: {f#,h#,k#}/{a,g}
    Applied Processor:
      UsableRules
    Proof:
      We replace rewrite rules by usable rules:
        f(a()) -> g(h(a()))
        f#(a()) -> c_1(h#(a()))
        h#(g(x)) -> c_2(h#(f(x)))
*** 1.1.1 Progress [(O(1),O(n^1))]  ***
    Considered Problem:
      Strict DP Rules:
        f#(a()) -> c_1(h#(a()))
        h#(g(x)) -> c_2(h#(f(x)))
      Strict TRS Rules:
        f(a()) -> g(h(a()))
      Weak DP Rules:
        
      Weak TRS Rules:
        
      Signature:
        {f/1,h/1,k/3,f#/1,h#/1,k#/3} / {a/0,g/1,c_1/1,c_2/1,c_3/1,c_4/1}
      Obligation:
        Full
        basic terms: {f#,h#,k#}/{a,g}
    Applied Processor:
      PredecessorEstimation {onSelection = all simple predecessor estimation selector}
    Proof:
      We estimate the number of application of
        {1}
      by application of
        Pre({1}) = {}.
      Here rules are labelled as follows:
        1: f#(a()) -> c_1(h#(a()))  
        2: h#(g(x)) -> c_2(h#(f(x)))
*** 1.1.1.1 Progress [(O(1),O(n^1))]  ***
    Considered Problem:
      Strict DP Rules:
        h#(g(x)) -> c_2(h#(f(x)))
      Strict TRS Rules:
        f(a()) -> g(h(a()))
      Weak DP Rules:
        f#(a()) -> c_1(h#(a()))
      Weak TRS Rules:
        
      Signature:
        {f/1,h/1,k/3,f#/1,h#/1,k#/3} / {a/0,g/1,c_1/1,c_2/1,c_3/1,c_4/1}
      Obligation:
        Full
        basic terms: {f#,h#,k#}/{a,g}
    Applied Processor:
      WeightGap {wgDimension = 1, wgDegree = 0, 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(h#) = {1},
          uargs(c_2) = {1}
        
        Following symbols are considered usable:
          {}
        TcT has computed the following interpretation:
            p(a) = [0]         
            p(f) = [1] x1 + [0]
            p(g) = [1] x1 + [7]
            p(h) = [0]         
            p(k) = [0]         
           p(f#) = [0]         
           p(h#) = [1] x1 + [0]
           p(k#) = [0]         
          p(c_1) = [0]         
          p(c_2) = [1] x1 + [0]
          p(c_3) = [0]         
          p(c_4) = [0]         
        
        Following rules are strictly oriented:
        h#(g(x)) = [1] x + [7]  
                 > [1] x + [0]  
                 = c_2(h#(f(x)))
        
        
        Following rules are (at-least) weakly oriented:
        f#(a()) =  [0]         
                >= [0]         
                =  c_1(h#(a()))
        
         f(a()) =  [0]         
                >= [7]         
                =  g(h(a()))   
        
      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:
        f(a()) -> g(h(a()))
      Weak DP Rules:
        f#(a()) -> c_1(h#(a()))
        h#(g(x)) -> c_2(h#(f(x)))
      Weak TRS Rules:
        
      Signature:
        {f/1,h/1,k/3,f#/1,h#/1,k#/3} / {a/0,g/1,c_1/1,c_2/1,c_3/1,c_4/1}
      Obligation:
        Full
        basic terms: {f#,h#,k#}/{a,g}
    Applied Processor:
      WeightGap {wgDimension = 1, wgDegree = 0, 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(h#) = {1},
          uargs(c_2) = {1}
        
        Following symbols are considered usable:
          {}
        TcT has computed the following interpretation:
            p(a) = [2]         
            p(f) = [1] x1 + [1]
            p(g) = [1] x1 + [1]
            p(h) = [1]         
            p(k) = [0]         
           p(f#) = [0]         
           p(h#) = [1] x1 + [0]
           p(k#) = [0]         
          p(c_1) = [0]         
          p(c_2) = [1] x1 + [0]
          p(c_3) = [0]         
          p(c_4) = [0]         
        
        Following rules are strictly oriented:
        f(a()) = [3]      
               > [2]      
               = g(h(a()))
        
        
        Following rules are (at-least) weakly oriented:
         f#(a()) =  [0]          
                 >= [0]          
                 =  c_1(h#(a())) 
        
        h#(g(x)) =  [1] x + [1]  
                 >= [1] x + [1]  
                 =  c_2(h#(f(x)))
        
      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:
        f#(a()) -> c_1(h#(a()))
        h#(g(x)) -> c_2(h#(f(x)))
      Weak TRS Rules:
        f(a()) -> g(h(a()))
      Signature:
        {f/1,h/1,k/3,f#/1,h#/1,k#/3} / {a/0,g/1,c_1/1,c_2/1,c_3/1,c_4/1}
      Obligation:
        Full
        basic terms: {f#,h#,k#}/{a,g}
    Applied Processor:
      EmptyProcessor
    Proof:
      The problem is already closed. The intended complexity is O(1).