YES 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() linear polynomial interpretations on N: fst_A(x1,x2) = x2 + 1 fst#_A(x1,x2) = x2 + 1 0_A = 1 0#_A = 1 nil_A = 1 nil#_A = 0 s_A = 1 s#_A = 0 cons_A(x1) = x1 + 1 cons#_A(x1) = 3 from_A(x1) = x1 + 1 from#_A(x1) = x1 + 4 add_A(x1,x2) = x2 + 1 add#_A(x1,x2) = 1 len_A(x1) = 1 len#_A(x1) = 2 precedence: fst = from > cons = add = len > 0 = s > nil