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