YES O(n^2) TRS: { g(h2(x, y, h1(z, u))) -> h2(s(x), y, h1(z, u)), f(x, h1(y, z)) -> h2(0(), x, h1(y, z)), f(j(x, y), y) -> g(f(x, k(y))), k(h1(x, y)) -> h1(s(x), y), k(h(x)) -> h1(0(), x), h2(x, j(y, h1(z, u)), h1(z, u)) -> h2(s(x), y, h1(s(z), u)), i(f(x, h(y))) -> y, i(h2(s(x), y, h1(x, z))) -> z } Natural interpretation: Strict: { g(h2(x, y, h1(z, u))) -> h2(s(x), y, h1(z, u)), f(x, h1(y, z)) -> h2(0(), x, h1(y, z)), f(j(x, y), y) -> g(f(x, k(y))), k(h1(x, y)) -> h1(s(x), y), k(h(x)) -> h1(0(), x), h2(x, j(y, h1(z, u)), h1(z, u)) -> h2(s(x), y, h1(s(z), u)), i(f(x, h(y))) -> y, i(h2(s(x), y, h1(x, z))) -> z } Weak: {} Interpretation class: deltarestricted [h](delta, X0) = + 1*X0 + 0 + 0*X0*delta + 0*delta [i](delta, X0) = + 1*X0 + 0 + 0*X0*delta + 0*delta [s](delta, X0) = + 0*X0 + 0 + 1*X0*delta + 0*delta [h1](delta, X1, X0) = + 1*X0 + 0*X1 + 0 + 0*X0*delta + 1*X1*delta + 0*delta [0](delta) = + 0 + 0*delta [h2](delta, X2, X1, X0) = + 1*X0 + 1*X1 + 0*X2 + 0 + 0*X0*delta + 0*X1*delta + 1*X2*delta + 2*delta [j](delta, X1, X0) = + 1*X0 + 1*X1 + 0 + 0*X0*delta + 0*X1*delta + 3*delta [k](delta, X0) = + 1*X0 + 0 + 0*X0*delta + 1*delta [f](delta, X1, X0) = + 1*X0 + 1*X1 + 0 + 0*X0*delta + 0*X1*delta + 3*delta [g](delta, X0) = + 1*X0 + 0 + 0*X0*delta + 1*delta h_tau_1(delta) = delta/(1 + 0 * delta) i_tau_1(delta) = delta/(1 + 0 * delta) s_tau_1(delta) = delta/(0 + 1 * delta) h1_tau_1(delta) = delta/(0 + 1 * delta)h1_tau_2(delta) = delta/(1 + 0 * delta) h2_tau_1(delta) = delta/(0 + 1 * delta)h2_tau_2(delta) = delta/(1 + 0 * delta)h2_tau_3(delta) = delta/(1 + 0 * delta) j_tau_1(delta) = delta/(1 + 0 * delta)j_tau_2(delta) = delta/(1 + 0 * delta) k_tau_1(delta) = delta/(1 + 0 * delta) f_tau_1(delta) = delta/(1 + 0 * delta)f_tau_2(delta) = delta/(1 + 0 * delta) g_tau_1(delta) = delta/(1 + 0 * delta) Qed