YES TRS: active(f(a(),X,X)) -> mark(f(X,b(),b())) active(b()) -> mark(a()) mark(f(X1,X2,X3)) -> active(f(X1,mark(X2),X3)) mark(a()) -> active(a()) mark(b()) -> active(b()) f(mark(X1),X2,X3) -> f(X1,X2,X3) f(X1,mark(X2),X3) -> f(X1,X2,X3) f(X1,X2,mark(X3)) -> f(X1,X2,X3) f(active(X1),X2,X3) -> f(X1,X2,X3) f(X1,active(X2),X3) -> f(X1,X2,X3) f(X1,X2,active(X3)) -> f(X1,X2,X3) max/plus interpretations on N: active_A(x1) = max{40, x1} active#_A(x1) = max{13, -3 + x1} f_A(x1,x2,x3) = max{4, 49 + x1, 13 + x2, 68 + x3} f#_A(x1,x2,x3) = max{66, 45 + x1, 4 + x2, 49 + x3} a_A = 38 a#_A = 14 mark_A(x1) = max{40, 1 + x1} mark#_A(x1) = max{0, -1 + x1} b_A = 15 b#_A = 64 precedence: f = a > b > mark > active