YES TRS: active(f(g(X),Y)) -> mark(f(X,f(g(X),Y))) mark(f(X1,X2)) -> active(f(mark(X1),X2)) mark(g(X)) -> active(g(mark(X))) f(mark(X1),X2) -> f(X1,X2) f(X1,mark(X2)) -> f(X1,X2) f(active(X1),X2) -> f(X1,X2) f(X1,active(X2)) -> f(X1,X2) g(mark(X)) -> g(X) g(active(X)) -> g(X) max/plus interpretations on N: active_A(x1) = max{6, x1} active#_A(x1) = max{13, 1 + x1} f_A(x1,x2) = max{2, x1, 0} f#_A(x1,x2) = max{19, 7, 12} g_A(x1) = max{20, 9 + x1} g#_A(x1) = max{0, -7} mark_A(x1) = max{7, x1} mark#_A(x1) = max{20, 9 + x1} precedence: active > mark > g > f