YES TRS: a__f(g(X),Y) -> a__f(mark(X),f(g(X),Y)) mark(f(X1,X2)) -> a__f(mark(X1),X2) mark(g(X)) -> g(mark(X)) a__f(X1,X2) -> f(X1,X2) max/plus interpretations on N: a__f_A(x1,x2) = max{4, x1, 13} a__f#_A(x1,x2) = max{0, 2 + x1, 6} g_A(x1) = max{0, 12 + x1} g#_A(x1) = max{11, 12} mark_A(x1) = max{1, 3 + x1} mark#_A(x1) = max{13, 10 + x1} f_A(x1,x2) = max{13, x1, -3} f#_A(x1,x2) = max{4, -1, 1} precedence: g > a__f > mark > f