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