YES

Problem:
 a__f(X,X) -> a__f(a(),b())
 a__b() -> a()
 mark(f(X1,X2)) -> a__f(mark(X1),X2)
 mark(b()) -> a__b()
 mark(a()) -> a()
 a__f(X1,X2) -> f(X1,X2)
 a__b() -> b()

Proof:
 DP Processor:
  DPs:
   a__f#(X,X) -> a__f#(a(),b())
   mark#(f(X1,X2)) -> mark#(X1)
   mark#(f(X1,X2)) -> a__f#(mark(X1),X2)
   mark#(b()) -> a__b#()
  TRS:
   a__f(X,X) -> a__f(a(),b())
   a__b() -> a()
   mark(f(X1,X2)) -> a__f(mark(X1),X2)
   mark(b()) -> a__b()
   mark(a()) -> a()
   a__f(X1,X2) -> f(X1,X2)
   a__b() -> b()
  EDG Processor:
   DPs:
    a__f#(X,X) -> a__f#(a(),b())
    mark#(f(X1,X2)) -> mark#(X1)
    mark#(f(X1,X2)) -> a__f#(mark(X1),X2)
    mark#(b()) -> a__b#()
   TRS:
    a__f(X,X) -> a__f(a(),b())
    a__b() -> a()
    mark(f(X1,X2)) -> a__f(mark(X1),X2)
    mark(b()) -> a__b()
    mark(a()) -> a()
    a__f(X1,X2) -> f(X1,X2)
    a__b() -> b()
   graph:
    mark#(f(X1,X2)) -> mark#(X1) -> mark#(f(X1,X2)) -> mark#(X1)
    mark#(f(X1,X2)) -> mark#(X1) ->
    mark#(f(X1,X2)) -> a__f#(mark(X1),X2)
    mark#(f(X1,X2)) -> mark#(X1) -> mark#(b()) -> a__b#()
    mark#(f(X1,X2)) -> a__f#(mark(X1),X2) -> a__f#(X,X) -> a__f#(a(),b())
   SCC Processor:
    #sccs: 1
    #rules: 1
    #arcs: 4/16
    DPs:
     mark#(f(X1,X2)) -> mark#(X1)
    TRS:
     a__f(X,X) -> a__f(a(),b())
     a__b() -> a()
     mark(f(X1,X2)) -> a__f(mark(X1),X2)
     mark(b()) -> a__b()
     mark(a()) -> a()
     a__f(X1,X2) -> f(X1,X2)
     a__b() -> b()
    Matrix Interpretation Processor:
     dimension: 1
     interpretation:
      [mark#](x0) = x0,
      
      [mark](x0) = x0 + 1,
      
      [f](x0, x1) = x0 + 1,
      
      [a__b] = 0,
      
      [b] = 0,
      
      [a] = 0,
      
      [a__f](x0, x1) = x0 + 1
     orientation:
      mark#(f(X1,X2)) = X1 + 1 >= X1 = mark#(X1)
      
      a__f(X,X) = X + 1 >= 1 = a__f(a(),b())
      
      a__b() = 0 >= 0 = a()
      
      mark(f(X1,X2)) = X1 + 2 >= X1 + 2 = a__f(mark(X1),X2)
      
      mark(b()) = 1 >= 0 = a__b()
      
      mark(a()) = 1 >= 0 = a()
      
      a__f(X1,X2) = X1 + 1 >= X1 + 1 = f(X1,X2)
      
      a__b() = 0 >= 0 = b()
     problem:
      DPs:
       
      TRS:
       a__f(X,X) -> a__f(a(),b())
       a__b() -> a()
       mark(f(X1,X2)) -> a__f(mark(X1),X2)
       mark(b()) -> a__b()
       mark(a()) -> a()
       a__f(X1,X2) -> f(X1,X2)
       a__b() -> b()
     Qed