(*###########################################################################*)
(** Properties of Zmax                                                       *)
(*###########################################################################*)
Definition Zmax (n m : Z) := (n + m - Z.min n m)%Z.

(* Specifications: *)
Lemma ZmaxSS : forall n m : Z, (Zmax n m + 1)%Z = Zmax (n + 1) (m + 1).
Lemma Zle_max_l : forall n m : Z, (n <= Zmax n m)%Z.
Lemma Zle_max_r : forall n m : Z, (m <= Zmax n m)%Z.
Lemma Zmin_or_informative : forall n m : Z, {Z.min n m = n} + {Z.min n m = m}.
Lemma Zmax_case : forall (n m : Z) (P : Z -> Set), P n -> P m -> P (Zmax n m).
Lemma Zmax_or_informative : forall n m : Z, {Zmax n m = n} + {Zmax n m = m}.
Lemma Zmax_n_n : forall n : Z, Zmax n n = n.
Hint Resolve ZmaxSS Zle_max_r Zle_max_l Zmax_n_n: zarith.