Proof using.
induction l; simpl.
- auto.
- intros.
specialize (IHl (max x a)).
intuition.
+ revert H.
apply Max.max_case_strong; intuition.
intuition eauto using fold_left_maxmimum_increase_init.
+ break_exists. break_and. eauto.
Qed.

(* Specifications: *)
Lemma fold_left_maximum_ind :
forall l x (P : nat -> Prop),
P x ->
(forall y, In y l -> P y) ->
P (fold_left max l x).