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() max/plus interpretations on N: fst_A(x1,x2) = max{0, x1, x2} fst#_A(x1,x2) = max{0, x1, x2} 0_A = 0 0#_A = 0 nil_A = 0 nil#_A = 0 s_A = 0 s#_A = 0 cons_A(x1) = max{0, x1} cons#_A(x1) = max{0, x1} from_A(x1) = max{0, x1} from#_A(x1) = max{0, x1} add_A(x1,x2) = max{0, x1, x2} add#_A(x1,x2) = max{0, x1, x2} len_A(x1) = max{0, x1} len#_A(x1) = max{0, x1} precedence: fst = from > nil = cons > 0 = s > add = len