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

(* Specifications: *)
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 }.