diff --git a/theories/numbers.v b/theories/numbers.v index 282273722eb7675b51a29f8db0dd03075daeef23..0fd07d35c25dc4770dc3a88ba506342ca25347e1 100644 --- a/theories/numbers.v +++ b/theories/numbers.v @@ -660,6 +660,21 @@ Proof. - by rewrite (assoc_L _), (comm_L Qp_plus a'). Qed. +Lemma Qp_bounded_split (p r : Qp) : ∃ q1 q2 : Qp, (q1 ≤ r)%Qc ∧ p = (q1 + q2)%Qp. +Proof. + destruct (Qclt_le_dec r p) as [?|?]. + - assert (0 < p - r)%Qc as Hpos. + { apply (Qcplus_lt_mono_r _ _ r). rewrite <-Qcplus_assoc, (Qcplus_comm (-r)). + by rewrite Qcplus_opp_r, Qcplus_0_l, Qcplus_0_r. } + exists r, (mk_Qp _ Hpos); simpl; split; [done|]. + apply Qp_eq; simpl. rewrite Qcplus_comm, <-Qcplus_assoc, (Qcplus_comm (-r)). + by rewrite Qcplus_opp_r, Qcplus_0_r. + - exists (p / 2)%Qp, (p / 2)%Qp; split. + + trans p; [|done]. apply Qclt_le_weak, Qp_lt_sum. + exists (p / 2)%Qp. by rewrite Qp_div_2. + + by rewrite Qp_div_2. +Qed. + Lemma Qp_not_plus_q_ge_1 (q: Qp): ¬ ((1 + q)%Qp ≤ 1%Qp)%Qc. Proof. intros Hle.