(************************************************************************)
(*         *   The Coq Proof Assistant / The Coq Development Team       *)
(*  v      *   INRIA, CNRS and contributors - Copyright 1999-2018       *)
(* <O___,, *       (see CREDITS file for the list of authors)           *)
(*   \VV/  **************************************************************)
(*    //   *    This file is distributed under the terms of the         *)
(*         *     GNU Lesser General Public License Version 2.1          *)
(*         *     (see LICENSE file for the text of the license)         *)
(************************************************************************)
(*********************************************************)
(**          Complements for the real numbers            *)
(*                                                       *)
(*********************************************************)
Local Open Scope R_scope.
Implicit Type r : R.
(*******************************)
(** *        Rmin              *)
(*******************************)
(*********)
Definition Rmin (x y:R) : R :=
match Rle_dec x y with
| left _ => x
| right _ => y
end.
(*******************************)
(** *        Rmax              *)
(*******************************)
(*********)
Definition Rmax (x y:R) : R :=
match Rle_dec x y with
| left _ => y
| right _ => x
end.
(* begin hide *)
Notation RmaxSym := Rmax_comm (only parsing).
(* end hide *)
(* begin hide *)
Notation RmaxLess1 := Rmax_l (only parsing).
Notation RmaxLess2 := Rmax_r (only parsing).
(* end hide *)
(*******************************)
(** *        Rabsolu           *)
(*******************************)
(*********)
Definition Rabs r : R :=
match Rcase_abs r with
| left _ => - r
| right _ => r
end.
Definition RRle_abs := Rle_abs.
intros x y; apply Rmax_case_strong.
now intros w; rewrite Rmin_left;[ | apply Rge_le, Ropp_le_ge_contravar].
now intros w; rewrite Rmin_right; [ | apply Rge_le, Ropp_le_ge_contravar].
Qed.
intros x y; apply Rmin_case_strong.
now intros w; rewrite Rmax_left;[ | apply Rge_le, Ropp_le_ge_contravar].
now intros w; rewrite Rmax_right; [ | apply Rge_le, Ropp_le_ge_contravar].
Qed.

Lemma Rmax_assoc : forall a b c, Rmax a (Rmax b c) = Rmax (Rmax a b) c.