(** * Rbar_min *)

Definition Rbar_min (x y : Rbar) : Rbar :=
  match x, y with
  | z, p_infty | p_infty, z => z
  | _ , m_infty | m_infty, _ => m_infty
  | Finite x, Finite y => Rmin x y
  end.

(* Specifications: *)
Lemma Rbar_lt_locally (a b : Rbar) (x : R) : Rbar_lt a x -> Rbar_lt x b -> exists delta : posreal, forall y, Rabs (y - x) < delta -> Rbar_lt a y /\ Rbar_lt y b.
Lemma Rbar_min_comm (x y : Rbar) : Rbar_min x y = Rbar_min y x.
Lemma Rbar_min_r (x y : Rbar) : Rbar_le (Rbar_min x y) y.
Lemma Rbar_min_l (x y : Rbar) : Rbar_le (Rbar_min x y) x.
Lemma Rbar_min_case (x y : Rbar) (P : Rbar -> Type) : P x -> P y -> P (Rbar_min x y).
Lemma Rbar_min_case_strong (r1 r2 : Rbar) (P : Rbar -> Type) : (Rbar_le r1 r2 -> P r1) -> (Rbar_le r2 r1 -> P r2) -> P (Rbar_min r1 r2).