YES TRS: merge(x,nil()) -> x merge(nil(),y) -> y merge(++(x,y),++(u(),v())) -> ++(x,merge(y,++(u(),v()))) merge(++(x,y),++(u(),v())) -> ++(u(),merge(++(x,y),v())) linear polynomial interpretations on N: merge_A(x1,x2) = x1 + x2 merge#_A(x1,x2) = x1 + x2 nil_A = 1 nil#_A = 1 ++_A(x1,x2) = x1 + x2 + 3 ++#_A(x1,x2) = x1 + x2 + 3 u_A = 1 u#_A = 1 v_A = 2 v#_A = 2 precedence: merge = nil > ++ > v > u