YES O(n^3) TRS: { fst(0(), Z) -> nil(), fst(s(), cons(Y)) -> cons(Y), from(X) -> cons(X), add(0(), X) -> X, add(s(), Y) -> s(), len(nil()) -> 0(), len(cons(X)) -> s() } DUP: We consider a non-duplicating system. Trs: { fst(0(), Z) -> nil(), fst(s(), cons(Y)) -> cons(Y), from(X) -> cons(X), add(0(), X) -> X, add(s(), Y) -> s(), len(nil()) -> 0(), len(cons(X)) -> s() } Matrix Interpretation: Interpretation class: triangular [X2] [1 0 1][X2] [0] [len]([X1]) = [0 0 0][X1] + [0] [X0] [0 0 0][X0] [0] [X5] [X2] [1 0 0][X5] [1 0 0][X2] [1] [add]([X4], [X1]) = [0 0 0][X4] + [0 1 0][X1] + [1] [X3] [X0] [0 0 0][X3] [0 0 1][X0] [0] [X2] [1 0 0][X2] [1] [from]([X1]) = [0 0 0][X1] + [0] [X0] [0 0 0][X0] [1] [0] [s] = [0] [0] [X2] [1 0 0][X2] [0] [cons]([X1]) = [0 0 0][X1] + [0] [X0] [0 0 0][X0] [1] [0] [0] = [0] [0] [X5] [X2] [1 0 0][X5] [1 0 0][X2] [1] [fst]([X4], [X1]) = [0 0 0][X4] + [0 0 0][X1] + [0] [X3] [X0] [0 0 0][X3] [0 0 0][X0] [1] [0] [nil] = [0] [1] Qed