YES O(n^2) TRS: { sqr(0()) -> 0(), sqr(s()) -> s(), terms(N) -> cons(recip(sqr(N))), dbl(0()) -> 0(), dbl(s()) -> s(), add(0(), X) -> X, add(s(), Y) -> s(), first(0(), X) -> nil(), first(s(), cons(Y)) -> cons(Y) } Natural interpretation: Strict: { sqr(0()) -> 0(), sqr(s()) -> s(), terms(N) -> cons(recip(sqr(N))), dbl(0()) -> 0(), dbl(s()) -> s(), add(0(), X) -> X, add(s(), Y) -> s(), first(0(), X) -> nil(), first(s(), cons(Y)) -> cons(Y) } Weak: {} Interpretation class: deltarestricted [first](delta, X1, X0) = + 1*X0 + 1*X1 + 1 + 0*X0*delta + 0*X1*delta + 1*delta [nil](delta) = + 0 + 0*delta [add](delta, X1, X0) = + 1*X0 + 0*X1 + 1 + 0*X0*delta + 1*X1*delta + 1*delta [dbl](delta, X0) = + 1*X0 + 0 + 0*X0*delta + 1*delta [s](delta) = + 1 + 0*delta [0](delta) = + 1 + 1*delta [terms](delta, X0) = + 0*X0 + 1 + 1*X0*delta + 1*delta [sqr](delta, X0) = + 0*X0 + 1 + 1*X0*delta + 0*delta [recip](delta, X0) = + 1*X0 + 0 + 0*X0*delta + 0*delta [cons](delta, X0) = + 1*X0 + 0 + 0*X0*delta + 0*delta first_tau_1(delta) = delta/(1 + 0 * delta)first_tau_2(delta) = delta/(1 + 0 * delta) add_tau_1(delta) = delta/(0 + 1 * delta)add_tau_2(delta) = delta/(1 + 0 * delta) dbl_tau_1(delta) = delta/(1 + 0 * delta) terms_tau_1(delta) = delta/(0 + 1 * delta) sqr_tau_1(delta) = delta/(0 + 1 * delta) recip_tau_1(delta) = delta/(1 + 0 * delta) cons_tau_1(delta) = delta/(1 + 0 * delta) Qed