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