Section max_list_map.
Variable (X : Type) (f : X -> nat).
Definition max_list_map (xs : list X) := max_list (map f xs).
(* This version may be useful sometimes *)
Definition max_list_map_rec (s : nat) (xs : list X) := max_list_rec s (map f xs).
End max_list_map.

(* [max_list_map] is monotone w.r.t. the function *)
Lemma max_list_map_monotone (X : Type) (f1 f2 : X -> nat) (xs : list X) :
(forall (x : X), In x xs -> f1 x <= f2 x) ->
max_list_map f1 xs <= max_list_map f2 xs.