YES

Problem:
 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)

Proof:
 DP Processor:
  DPs:
   f#(a()) -> h#(a())
   h#(g(x)) -> f#(x)
   h#(g(x)) -> h#(f(x))
  TRS:
   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)
  Matrix Interpretation Processor: dim=3
   
   interpretation:
    [h#](x0) = [0 0 1]x0,
    
    [f#](x0) = [1 0 0]x0,
    
                      [0 0 1]     [0 0 1]     [0 0 1]     [1]
    [k](x0, x1, x2) = [1 1 1]x0 + [0 0 0]x1 + [1 1 1]x2 + [0]
                      [0 0 0]     [0 1 1]     [1 0 0]     [1],
    
              [0 0 0]     [0]
    [g](x0) = [0 0 0]x0 + [1]
              [1 0 0]     [1],
    
              [0 0 0]  
    [h](x0) = [0 0 1]x0
              [1 1 0]  ,
    
              [1 0 1]     [0]
    [f](x0) = [0 0 0]x0 + [1]
              [1 0 0]     [0],
    
          [1]
    [a] = [1]
          [0]
   orientation:
    f#(a()) = 1 >= 0 = h#(a())
    
    h#(g(x)) = [1 0 0]x + [1] >= [1 0 0]x = f#(x)
    
    h#(g(x)) = [1 0 0]x + [1] >= [1 0 0]x = h#(f(x))
    
             [1]    [0]            
    f(a()) = [1] >= [1] = g(h(a()))
             [1]    [1]            
    
              [0 0 0]    [0]    [0]             
    h(g(x)) = [1 0 0]x + [1] >= [1] = g(h(f(x)))
              [0 0 0]    [1]    [1]             
    
                    [1 1 1]    [1]    [0 0 0]        
    k(x,h(x),a()) = [1 1 1]x + [2] >= [0 0 1]x = h(x)
                    [1 1 1]    [2]    [1 1 0]        
    
                  [1 0 1]    [0 0 1]    [1]    [1 0 1]    [0]       
    k(f(x),y,x) = [3 1 2]x + [0 0 0]y + [1] >= [0 0 0]x + [1] = f(x)
                  [1 0 0]    [0 1 1]    [1]    [1 0 0]    [0]       
   problem:
    DPs:
     
    TRS:
     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)
   Qed