YES

Problem:
 a__f(f(a())) -> a__f(g(f(a())))
 mark(f(X)) -> a__f(mark(X))
 mark(a()) -> a()
 mark(g(X)) -> g(X)
 a__f(X) -> f(X)

Proof:
 DP Processor:
  DPs:
   a__f#(f(a())) -> a__f#(g(f(a())))
   mark#(f(X)) -> mark#(X)
   mark#(f(X)) -> a__f#(mark(X))
  TRS:
   a__f(f(a())) -> a__f(g(f(a())))
   mark(f(X)) -> a__f(mark(X))
   mark(a()) -> a()
   mark(g(X)) -> g(X)
   a__f(X) -> f(X)
  Matrix Interpretation Processor: dim=1
   
   usable rules:
    a__f(f(a())) -> a__f(g(f(a())))
    mark(f(X)) -> a__f(mark(X))
    mark(a()) -> a()
    mark(g(X)) -> g(X)
    a__f(X) -> f(X)
   interpretation:
    [mark#](x0) = 5x0 + 2,
    
    [a__f#](x0) = x0,
    
    [mark](x0) = 5x0,
    
    [g](x0) = 0,
    
    [a__f](x0) = x0 + 2,
    
    [f](x0) = x0 + 1,
    
    [a] = 4
   orientation:
    a__f#(f(a())) = 5 >= 0 = a__f#(g(f(a())))
    
    mark#(f(X)) = 5X + 7 >= 5X + 2 = mark#(X)
    
    mark#(f(X)) = 5X + 7 >= 5X = a__f#(mark(X))
    
    a__f(f(a())) = 7 >= 2 = a__f(g(f(a())))
    
    mark(f(X)) = 5X + 5 >= 5X + 2 = a__f(mark(X))
    
    mark(a()) = 20 >= 4 = a()
    
    mark(g(X)) = 0 >= 0 = g(X)
    
    a__f(X) = X + 2 >= X + 1 = f(X)
   problem:
    DPs:
     
    TRS:
     a__f(f(a())) -> a__f(g(f(a())))
     mark(f(X)) -> a__f(mark(X))
     mark(a()) -> a()
     mark(g(X)) -> g(X)
     a__f(X) -> f(X)
   Qed