YES
O(n^3)
TRS:
 {
         mark(f(X)) -> active(f(mark(X))),
         mark(g(X)) -> active(g(X)),
          mark(a()) -> active(a()),
         f(mark(X)) -> f(X),
       f(active(X)) -> f(X),
         g(mark(X)) -> g(X),
       g(active(X)) -> g(X),
  active(f(f(a()))) -> mark(f(g(f(a()))))
 }
 DUP: We consider a non-duplicating system.
  Trs:
   {
           mark(f(X)) -> active(f(mark(X))),
           mark(g(X)) -> active(g(X)),
            mark(a()) -> active(a()),
           f(mark(X)) -> f(X),
         f(active(X)) -> f(X),
           g(mark(X)) -> g(X),
         g(active(X)) -> g(X),
    active(f(f(a()))) -> mark(f(g(f(a()))))
   }
  Matrix Interpretation:
   Interpretation class: triangular
            [X2]    [1 0 0][X2]   [1]
   [active]([X1]) = [0 1 0][X1] + [0]
            [X0]    [0 0 1][X0]   [0]
   
         [1]
   [a] = [1]
         [1]
   
       [X2]    [1 0 0][X2]   [0]
   [g]([X1]) = [0 0 0][X1] + [1]
       [X0]    [0 0 0][X0]   [0]
   
       [X2]    [1 1 1][X2]   [1]
   [f]([X1]) = [0 1 1][X1] + [1]
       [X0]    [0 0 1][X0]   [1]
   
          [X2]    [1 1 1][X2]   [1]
   [mark]([X1]) = [0 1 0][X1] + [0]
          [X0]    [0 0 1][X0]   [0]
   
   
   Qed