YES O(n^2) TRS: { app(nil(), YS) -> YS, app(cons(X), YS) -> cons(X), from(X) -> cons(X), zWadr(XS, nil()) -> nil(), zWadr(nil(), YS) -> nil(), zWadr(cons(X), cons(Y)) -> cons(app(Y, cons(X))), prefix(L) -> cons(nil()) } Natural interpretation: Strict: { app(nil(), YS) -> YS, app(cons(X), YS) -> cons(X), from(X) -> cons(X), zWadr(XS, nil()) -> nil(), zWadr(nil(), YS) -> nil(), zWadr(cons(X), cons(Y)) -> cons(app(Y, cons(X))), prefix(L) -> cons(nil()) } Weak: {} Interpretation class: deltarestricted [prefix](delta, X0) = + 1*X0 + 1 + 1*X0*delta + 1*delta [zWadr](delta, X1, X0) = + 0*X0 + 0*X1 + 1 + 1*X0*delta + 1*X1*delta + 1*delta [from](delta, X0) = + 0*X0 + 1 + 1*X0*delta + 1*delta [cons](delta, X0) = + 0*X0 + 1 + 1*X0*delta + 0*delta [nil](delta) = + 0 + 0*delta [app](delta, X1, X0) = + 1*X0 + 1*X1 + 0 + 0*X0*delta + 0*X1*delta + 1*delta prefix_tau_1(delta) = delta/(1 + 1 * delta) zWadr_tau_1(delta) = delta/(0 + 1 * delta)zWadr_tau_2(delta) = delta/(0 + 1 * delta) from_tau_1(delta) = delta/(0 + 1 * delta) cons_tau_1(delta) = delta/(0 + 1 * delta) app_tau_1(delta) = delta/(1 + 0 * delta)app_tau_2(delta) = delta/(1 + 0 * delta) Qed