YES O(n^5) 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 [X14] [X9] [X4] [1 1 1 1 0][X14] [1 0 1 0 0][X9] [1 1 0 1 0][X4] [0] [X13] [X8] [X3] [0 0 0 0 0][X13] [0 0 0 0 0][X8] [0 0 0 0 0][X3] [1] [f]([X12], [X7], [X2]) = [0 0 0 0 0][X12] + [0 0 0 0 1][X7] + [0 0 0 0 0][X2] + [1] [X11] [X6] [X1] [0 0 0 0 0][X11] [0 0 0 0 0][X6] [0 0 0 0 0][X1] [1] [X10] [X5] [X0] [0 0 0 0 1][X10] [0 0 0 0 1][X5] [0 0 0 0 0][X0] [1] [X4] [1 0 1 0 1][X4] [0] [X3] [0 1 1 0 0][X3] [0] [mark]([X2]) = [0 0 0 0 1][X2] + [0] [X1] [0 0 0 0 0][X1] [1] [X0] [0 0 0 0 1][X0] [0] [0] [1] [a] = [1] [1] [1] [0] [0] [b] = [1] [0] [1] [1] [1] [a__b] = [1] [1] [1] [X14] [X9] [X4] [1 1 1 1 0][X14] [1 0 1 0 0][X9] [1 1 0 1 0][X4] [1] [X13] [X8] [X3] [0 0 0 0 0][X13] [0 0 0 0 0][X8] [0 0 0 0 0][X3] [1] [a__f]([X12], [X7], [X2]) = [0 0 0 0 1][X12] + [0 0 0 0 1][X7] + [0 0 0 0 0][X2] + [1] [X11] [X6] [X1] [0 0 0 0 0][X11] [0 0 0 0 0][X6] [0 0 0 0 0][X1] [1] [X10] [X5] [X0] [0 0 0 0 1][X10] [0 0 0 0 1][X5] [0 0 0 0 0][X0] [1] Qed