Fixpoint DDcut_limit_fix (upcut : DedekindDecCut) (r : Q) (n : nat) :
Qlt 0 r
-> (DDupcut upcut (DDlow upcut + (Z.of_nat n#1) * r))
-> { q : Q | DDupcut upcut q /\ ~DDupcut upcut (q - r) }.

(* Specifications: *)
Lemma DDcut_limit : forall (upcut : DedekindDecCut) (r : Q),
Qlt 0 r
-> { q : Q | DDupcut upcut q /\ ~DDupcut upcut (q - r) }.
Lemma glb_dec_Q : forall {R : ConstructiveReals} (upcut : DedekindDecCut),
{ x : CRcarrier R
| forall r:Q, (x < CR_of_Q R r -> DDupcut upcut r)
/\ (CR_of_Q R r < x -> ~DDupcut upcut r) }.
Lemma is_upper_bound_glb :
forall {R : ConstructiveReals} (E:CRcarrier R -> Prop),
sig_not_dec_T
-> sig_forall_dec_T
-> (exists x : CRcarrier R, E x)
-> (exists x : CRcarrier R, is_upper_bound E x)
-> { x : CRcarrier R
| forall r:Q, (x < CR_of_Q R r -> is_upper_bound E (CR_of_Q R r))
/\ (CR_of_Q R r < x -> ~is_upper_bound E (CR_of_Q R r)) }.
Lemma is_upper_bound_closed :
forall {R : ConstructiveReals}
(E:CRcarrier R -> Prop) (sig_forall_dec : sig_forall_dec_T)
(sig_not_dec : sig_not_dec_T)
(Einhab : exists x : CRcarrier R, E x)
(Ebound : exists x : CRcarrier R, is_upper_bound E x),
is_lub
E (proj1_sig (is_upper_bound_glb
E sig_not_dec sig_forall_dec Einhab Ebound)).
Lemma sig_lub :
forall {R : ConstructiveReals} (E:CRcarrier R -> Prop),
sig_forall_dec_T
-> sig_not_dec_T
-> (exists x : CRcarrier R, E x)
-> (exists x : CRcarrier R, is_upper_bound E x)
-> { u : CRcarrier R | is_lub E u }.