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)
  TDG 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)
   graph:
    mark#(f(X1,X2)) -> mark#(X1) -> mark#(g(X)) -> mark#(X)
    mark#(f(X1,X2)) -> mark#(X1) ->
    mark#(f(X1,X2)) -> a__f#(mark(X1),X2)
    mark#(f(X1,X2)) -> mark#(X1) ->
    mark#(f(X1,X2)) -> mark#(X1)
    mark#(f(X1,X2)) -> a__f#(mark(X1),X2) ->
    a__f#(g(X),Y) -> a__f#(mark(X),f(g(X),Y))
    mark#(f(X1,X2)) -> a__f#(mark(X1),X2) -> a__f#(g(X),Y) -> mark#(X)
    mark#(g(X)) -> mark#(X) -> mark#(g(X)) -> mark#(X)
    mark#(g(X)) -> mark#(X) -> mark#(f(X1,X2)) -> a__f#(mark(X1),X2)
    mark#(g(X)) -> mark#(X) -> mark#(f(X1,X2)) -> mark#(X1)
    a__f#(g(X),Y) -> mark#(X) -> mark#(g(X)) -> mark#(X)
    a__f#(g(X),Y) -> mark#(X) -> mark#(f(X1,X2)) -> a__f#(mark(X1),X2)
    a__f#(g(X),Y) -> mark#(X) ->
    mark#(f(X1,X2)) -> mark#(X1)
    a__f#(g(X),Y) -> a__f#(mark(X),f(g(X),Y)) ->
    a__f#(g(X),Y) -> a__f#(mark(X),f(g(X),Y))
    a__f#(g(X),Y) -> a__f#(mark(X),f(g(X),Y)) -> a__f#(g(X),Y) -> mark#(X)
   Arctic Interpretation Processor:
    dimension: 1
    interpretation:
     [mark#](x0) = x0 + 0,
     
     [a__f#](x0, x1) = 1x0 + x1 + 0,
     
     [f](x0, x1) = 1x0 + x1,
     
     [mark](x0) = x0,
     
     [a__f](x0, x1) = 1x0 + x1,
     
     [g](x0) = x0 + 0
    orientation:
     a__f#(g(X),Y) = 1X + Y + 1 >= X + 0 = mark#(X)
     
     a__f#(g(X),Y) = 1X + Y + 1 >= 1X + Y + 1 = a__f#(mark(X),f(g(X),Y))
     
     mark#(f(X1,X2)) = 1X1 + X2 + 0 >= X1 + 0 = mark#(X1)
     
     mark#(f(X1,X2)) = 1X1 + X2 + 0 >= 1X1 + X2 + 0 = a__f#(mark(X1),X2)
     
     mark#(g(X)) = X + 0 >= X + 0 = mark#(X)
     
     a__f(g(X),Y) = 1X + Y + 1 >= 1X + Y + 1 = a__f(mark(X),f(g(X),Y))
     
     mark(f(X1,X2)) = 1X1 + X2 >= 1X1 + X2 = a__f(mark(X1),X2)
     
     mark(g(X)) = X + 0 >= X + 0 = g(mark(X))
     
     a__f(X1,X2) = 1X1 + X2 >= 1X1 + X2 = f(X1,X2)
    problem:
     DPs:
      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)
    SCC Processor:
     #sccs: 2
     #rules: 3
     #arcs: 13/16
     DPs:
      mark#(f(X1,X2)) -> mark#(X1)
      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)
     Subterm Criterion Processor:
      simple projection:
       pi(mark#) = 0
      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
     
     DPs:
      a__f#(g(X),Y) -> a__f#(mark(X),f(g(X),Y))
     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)
     Arctic Interpretation Processor:
      dimension: 1
      interpretation:
       [a__f#](x0, x1) = 1x0 + x1 + 0,
       
       [f](x0, x1) = x0 + 0,
       
       [mark](x0) = 2x0 + 0,
       
       [a__f](x0, x1) = x0 + 0,
       
       [g](x0) = 3x0 + 2
      orientation:
       a__f#(g(X),Y) = 4X + Y + 3 >= 3X + 2 = a__f#(mark(X),f(g(X),Y))
       
       a__f(g(X),Y) = 3X + 2 >= 2X + 0 = a__f(mark(X),f(g(X),Y))
       
       mark(f(X1,X2)) = 2X1 + 2 >= 2X1 + 0 = a__f(mark(X1),X2)
       
       mark(g(X)) = 5X + 4 >= 5X + 3 = g(mark(X))
       
       a__f(X1,X2) = X1 + 0 >= X1 + 0 = 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