Definition CRis_upper_bound {R : ConstructiveReals} (E:CRcarrier R -> Prop) (m:CRcarrier R)
  := forall x:CRcarrier R, E x -> CRlt R m x -> False.

Lemma CR_sig_lub : forall {R : ConstructiveReals} (E:CRcarrier R -> Prop), (forall x y : CRcarrier R, CReq R x y -> (E x <-> E y)) -> sig_forall_dec_T -> sig_not_dec_T -> (exists x : CRcarrier R, E x) -> (exists x : CRcarrier R, CRis_upper_bound E x) -> { u : CRcarrier R | CRis_upper_bound E u /\ forall y:CRcarrier R, CRis_upper_bound E y -> CRlt R y u -> False }.