YES O(n^2) TRS: { filter(cons(X), 0(), M) -> cons(0()), filter(cons(X), s(N), M) -> cons(X), sieve(cons(0())) -> cons(0()), sieve(cons(s(N))) -> cons(s(N)), nats(N) -> cons(N), zprimes() -> sieve(nats(s(s(0())))) } DUP: We consider a non-duplicating system. Trs: { filter(cons(X), 0(), M) -> cons(0()), filter(cons(X), s(N), M) -> cons(X), sieve(cons(0())) -> cons(0()), sieve(cons(s(N))) -> cons(s(N)), nats(N) -> cons(N), zprimes() -> sieve(nats(s(s(0())))) } Matrix Interpretation: Interpretation class: triangular [3] [zprimes] = [1] [X1] [1 0][X1] [1] [nats]([X0]) = [0 0][X0] + [0] [X1] [1 0][X1] [1] [sieve]([X0]) = [0 0][X0] + [0] [X1] [1 0][X1] [0] [s]([X0]) = [0 0][X0] + [0] [X5] [X3] [X1] [1 0][X5] [1 0][X3] [1 0][X1] [2] [filter]([X4], [X2], [X0]) = [0 0][X4] + [0 0][X2] + [0 0][X0] + [0] [0] [0] = [0] [X1] [1 0][X1] [0] [cons]([X0]) = [0 0][X0] + [0] Qed