YES

Problem:
 a__f(g(X),Y) -> a__f(mark(X),f(g(X),Y))
 mark(f(X1,X2)) -> a__f(mark(X1),X2)
 mark(g(X)) -> g(mark(X))
 a__f(X1,X2) -> f(X1,X2)

Proof:
 DP Processor:
  DPs:
   a__f#(g(X),Y) -> mark#(X)
   a__f#(g(X),Y) -> a__f#(mark(X),f(g(X),Y))
   mark#(f(X1,X2)) -> mark#(X1)
   mark#(f(X1,X2)) -> a__f#(mark(X1),X2)
   mark#(g(X)) -> mark#(X)
  TRS:
   a__f(g(X),Y) -> a__f(mark(X),f(g(X),Y))
   mark(f(X1,X2)) -> a__f(mark(X1),X2)
   mark(g(X)) -> g(mark(X))
   a__f(X1,X2) -> f(X1,X2)
  Matrix Interpretation Processor: dim=1
   
   usable rules:
    a__f(g(X),Y) -> a__f(mark(X),f(g(X),Y))
    mark(f(X1,X2)) -> a__f(mark(X1),X2)
    mark(g(X)) -> g(mark(X))
    a__f(X1,X2) -> f(X1,X2)
   interpretation:
    [mark#](x0) = x0 + 4,
    
    [a__f#](x0, x1) = x0 + 4,
    
    [f](x0, x1) = x0 + 2,
    
    [mark](x0) = x0,
    
    [a__f](x0, x1) = x0 + 2,
    
    [g](x0) = x0 + 1
   orientation:
    a__f#(g(X),Y) = X + 5 >= X + 4 = mark#(X)
    
    a__f#(g(X),Y) = X + 5 >= X + 4 = a__f#(mark(X),f(g(X),Y))
    
    mark#(f(X1,X2)) = X1 + 6 >= X1 + 4 = mark#(X1)
    
    mark#(f(X1,X2)) = X1 + 6 >= X1 + 4 = a__f#(mark(X1),X2)
    
    mark#(g(X)) = X + 5 >= X + 4 = mark#(X)
    
    a__f(g(X),Y) = X + 3 >= X + 2 = a__f(mark(X),f(g(X),Y))
    
    mark(f(X1,X2)) = X1 + 2 >= X1 + 2 = a__f(mark(X1),X2)
    
    mark(g(X)) = X + 1 >= X + 1 = g(mark(X))
    
    a__f(X1,X2) = X1 + 2 >= X1 + 2 = f(X1,X2)
   problem:
    DPs:
     
    TRS:
     a__f(g(X),Y) -> a__f(mark(X),f(g(X),Y))
     mark(f(X1,X2)) -> a__f(mark(X1),X2)
     mark(g(X)) -> g(mark(X))
     a__f(X1,X2) -> f(X1,X2)
   Qed