(** * Bounds for sets in [R] *)
(** ** Upper and Lower bounds *)

Definition is_ub_Rbar (E : R -> Prop) (l : Rbar) :=
  forall (x : R), E x -> Rbar_le x l.Definition is_lb_Rbar (E : R -> Prop) (l : Rbar) :=
  forall (x : R), E x -> Rbar_le l x.

(* Specifications: *)
Lemma is_ub_Rbar_opp (E : R -> Prop) (l : Rbar) : is_lb_Rbar E l <-> is_ub_Rbar (fun x => E (- x)) (Rbar_opp l).
Lemma is_lb_Rbar_opp (E : R -> Prop) (l : Rbar) : is_ub_Rbar E l <-> is_lb_Rbar (fun x => E (- x)) (Rbar_opp l).
Lemma is_ub_Rbar_dec (E : R -> Prop) : {l : R | is_ub_Rbar E l} + {(forall l : R, ~is_ub_Rbar E l)}.
Lemma is_lb_Rbar_dec (E : R -> Prop) : {l : R | is_lb_Rbar E l} + {(forall l : R, ~is_lb_Rbar E l)}.
Lemma is_ub_Rbar_subset (E1 E2 : R -> Prop) (l : Rbar) : (forall x : R, E2 x -> E1 x) -> is_ub_Rbar E1 l -> is_ub_Rbar E2 l.
Lemma is_lb_Rbar_subset (E1 E2 : R -> Prop) (l : Rbar) : (forall x : R, E2 x -> E1 x) -> is_lb_Rbar E1 l -> is_lb_Rbar E2 l.