YES O(n^4) 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()) } DUP: We consider a non-duplicating system. 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()) } Matrix Interpretation: Interpretation class: triangular [X3] [1 0 0 0][X3] [1] [X2] [0 0 0 0][X2] [1] [prefix]([X1]) = [0 0 0 0][X1] + [1] [X0] [0 0 0 0][X0] [1] [X7] [X3] [1 0 0 1][X7] [1 0 0 0][X3] [1] [X6] [X2] [0 0 0 0][X6] [0 0 0 0][X2] [0] [zWadr]([X5], [X1]) = [0 0 0 0][X5] + [0 0 0 1][X1] + [0] [X4] [X0] [0 0 0 0][X4] [0 0 0 1][X0] [0] [X3] [1 0 0 0][X3] [1] [X2] [0 0 0 0][X2] [0] [from]([X1]) = [0 0 0 0][X1] + [0] [X0] [0 0 0 0][X0] [1] [X3] [1 0 0 0][X3] [0] [X2] [0 0 0 0][X2] [0] [cons]([X1]) = [0 0 0 0][X1] + [0] [X0] [0 0 0 0][X0] [1] [0] [0] [nil] = [0] [0] [X7] [X3] [1 0 0 0][X7] [1 0 0 0][X3] [1] [X6] [X2] [0 0 0 0][X6] [0 1 0 0][X2] [0] [app]([X5], [X1]) = [0 0 0 0][X5] + [0 0 1 0][X1] + [0] [X4] [X0] [0 0 0 1][X4] [0 0 0 1][X0] [1] Qed