Module Import Private_Tac := !MakeOrderTac O O.
(** An alternative characterisation of [max], equivalent to [max_l /\ max_r] *)
(** A more symmetric version of [max_spec], based only on [le]. Beware that left and right alternatives overlap. *)
Instance : Proper (eq==>eq==>iff) le.
(** A function satisfying the same specification is equal to [max]. *)

Lemma max_unicity_ext f :
(forall n m, (n < m /\ f n m == m) \/ (m <= n /\ f n m == n)) ->
(forall n m, f n m == max n m).