YES O(n^2) TRS: { concat(leaf(), y) -> y, concat(cons(u, v), y) -> cons(u, concat(v, y)), less_leaves(x, leaf()) -> false(), less_leaves(leaf(), cons(w, z)) -> true(), less_leaves(cons(u, v), cons(w, z)) -> less_leaves(concat(u, v), concat(w, z)) } Natural interpretation: Strict: { concat(leaf(), y) -> y, concat(cons(u, v), y) -> cons(u, concat(v, y)), less_leaves(x, leaf()) -> false(), less_leaves(leaf(), cons(w, z)) -> true(), less_leaves(cons(u, v), cons(w, z)) -> less_leaves(concat(u, v), concat(w, z)) } Weak: {} Interpretation class: deltarestricted [true](delta) = + 0 + 0*delta [less_leaves](delta, X1, X0) = + 0*X0 + 0*X1 + 0 + 1*X0*delta + 1*X1*delta + 0*delta [false](delta) = + 0 + 0*delta [cons](delta, X1, X0) = + 1*X0 + 0*X1 + 1 + 0*X0*delta + 2*X1*delta + 0*delta [leaf](delta) = + 0 + 2*delta [concat](delta, X1, X0) = + 1*X0 + 1*X1 + 0 + 0*X0*delta + 1*X1*delta + 0*delta less_leaves_tau_1(delta) = delta/(0 + 1 * delta)less_leaves_tau_2(delta) = delta/(0 + 1 * delta) cons_tau_1(delta) = delta/(0 + 2 * delta)cons_tau_2(delta) = delta/(1 + 0 * delta) concat_tau_1(delta) = delta/(1 + 1 * delta)concat_tau_2(delta) = delta/(1 + 0 * delta) Qed