(********************************************************************)
(*      max                                                         *)


Fixpoint max (n m : nat) {struct n} : nat :=
  match n with
  | O => m
  | S p => match m with
           | O => S p
           | S q => S (max p q)
           end
  end.

Lemma le_n_max2 : forall n m : nat, n <= max m n.