(** Max of elements of a list of [nat]: [list_max] *)

Definition list_max l := fold_right max 0 l.

(* Specifications: *)
Lemma list_max_app : forall l1 l2, list_max (l1 ++ l2) = max (list_max l1) (list_max l2).
Lemma list_max_le : forall l n, list_max l <= n <-> Forall (fun k => k <= n) l.
Lemma list_max_lt : forall l n, l <> [] -> list_max l < n <-> Forall (fun k => k < n) l.