Section FirstMax.

Theorem exist_first_max :
forall l : list nat,
l <> nil ->
exists a : nat,
(exists l1 : list nat,
(exists l2 : list nat,
l = l1 ++ a :: l2 /\
(forall n1, In n1 l1 -> n1 < a) /\ (forall n1, In n1 l2 -> n1 <= a))).