Skip to content

Commit d8087fd

Browse files
pi8027affeldt-aist
andauthored
less unitfE (#1571)
Co-authored-by: Reynald Affeldt <[email protected]>
1 parent da217ff commit d8087fd

File tree

16 files changed

+61
-70
lines changed

16 files changed

+61
-70
lines changed

reals/constructive_ereal.v

Lines changed: 25 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -3533,21 +3533,21 @@ move=> x0; apply/(iffP idP) => [xy r /andP[r0 r1]|h].
35333533
move: x0 xy; rewrite le_eqVlt => /predU1P[<-|x0 xy]; first by rewrite mule0.
35343534
by rewrite (le_trans _ xy)// gee_pMl// ltW.
35353535
have h01 : (0 < (2^-1 : R) < 1)%R by rewrite invr_gt0 ?invf_lt1 ?ltr0n ?ltr1n.
3536-
move: x y => [x||] [y||] // in x0 h *.
3537-
- move: (x0); rewrite lee_fin le_eqVlt => /predU1P[<-|{}x0].
3538-
by rewrite (le_trans _ (h _ h01))// mule_ge0// lee_fin.
3539-
have y0 : (0 < y)%R.
3540-
by rewrite -lte_fin (lt_le_trans _ (h _ h01))// mule_gt0// lte_fin.
3541-
rewrite lee_fin leNgt; apply/negP => yx.
3542-
have /h : (0 < (y + x) / (2 * x) < 1)%R.
3543-
rewrite ltr_pdivlMr ?ltr_pdivrMr ?mulr_gt0// mul0r mul1r.
3544-
by rewrite mulr_natl mulr2n ltrD2r yx addr_gt0.
3545-
rewrite -(EFinM _ x) lee_fin invrM ?unitfE// ?gt_eqF// -mulrA mulrAC.
3546-
by rewrite mulVr ?unitfE ?gt_eqF// mul1r; apply/negP; rewrite -ltNge midf_lt.
3536+
move: x y => [x||] [y||] // in x0 h *; last 4 first.
35473537
- by rewrite leey.
35483538
- by have := h _ h01.
35493539
- by have := h _ h01; rewrite mulr_infty sgrV gtr0_sg // mul1e.
35503540
- by have := h _ h01; rewrite mulr_infty sgrV gtr0_sg // mul1e.
3541+
move: (x0); rewrite lee_fin le_eqVlt => /predU1P[<-|{}x0].
3542+
by rewrite (le_trans _ (h _ h01))// mule_ge0// lee_fin.
3543+
have y0 : (0 < y)%R.
3544+
by rewrite -lte_fin (lt_le_trans _ (h _ h01))// mule_gt0// lte_fin.
3545+
rewrite lee_fin leNgt; apply/negP => yx.
3546+
have /h : (0 < (y + x) / (2 * x) < 1)%R.
3547+
apply/andP; split; first by rewrite divr_gt0 // ?addr_gt0// ?mulr_gt0.
3548+
by rewrite ltr_pdivrMr ?mulr_gt0// mul1r mulr_natl mulr2n ltrD2r.
3549+
rewrite -EFinM lee_fin invfM -mulrA divfK ?gt_eqF//.
3550+
by apply/negP; rewrite -ltNge midf_lt.
35513551
Qed.
35523552

35533553
Lemma lte_pdivrMl r x y : (0 < r)%R -> (r^-1%:E * y < x) = (y < r%:E * x).
@@ -3606,9 +3606,9 @@ Lemma lee_pdivrMl r x y : (0 < r)%R -> (r^-1%:E * y <= x) = (y <= r%:E * x).
36063606
Proof.
36073607
move=> r0; apply/idP/idP.
36083608
- rewrite le_eqVlt => /predU1P[<-|]; last by rewrite lte_pdivrMl// => /ltW.
3609-
by rewrite muleA -EFinM divrr ?mul1e// unitfE gt_eqF.
3609+
by rewrite muleA -EFinM divff ?mul1e// gt_eqF.
36103610
- rewrite le_eqVlt => /predU1P[->|]; last by rewrite -lte_pdivrMl// => /ltW.
3611-
by rewrite muleA -EFinM mulVr ?mul1e// unitfE gt_eqF.
3611+
by rewrite muleA -EFinM mulVf ?mul1e// gt_eqF.
36123612
Qed.
36133613

36143614
Lemma lee_pdivrMr r x y : (0 < r)%R -> (y * r^-1%:E <= x) = (y <= x * r%:E).
@@ -3618,9 +3618,9 @@ Lemma lee_pdivlMl r y x : (0 < r)%R -> (x <= r^-1%:E * y) = (r%:E * x <= y).
36183618
Proof.
36193619
move=> r0; apply/idP/idP.
36203620
- rewrite le_eqVlt => /predU1P[->|]; last by rewrite lte_pdivlMl// => /ltW.
3621-
by rewrite muleA -EFinM divrr ?mul1e// unitfE gt_eqF.
3621+
by rewrite muleA -EFinM divff ?mul1e// gt_eqF.
36223622
- rewrite le_eqVlt => /predU1P[<-|]; last by rewrite -lte_pdivlMl// => /ltW.
3623-
by rewrite muleA -EFinM mulVr ?mul1e// unitfE gt_eqF.
3623+
by rewrite muleA -EFinM mulVf ?mul1e// gt_eqF.
36243624
Qed.
36253625

36263626
Lemma lee_pdivlMr r x y : (0 < r)%R -> (x <= y * r^-1%:E) = (x * r%:E <= y).
@@ -4512,8 +4512,7 @@ Definition contract x : R :=
45124512

45134513
Lemma contract_lt1 r : (`|contract r%:E| < 1)%R.
45144514
Proof.
4515-
rewrite normrM normrV ?unitfE //.
4516-
rewrite ltr_pdivrMr // ?mul1r//; last by rewrite gtr0_norm.
4515+
rewrite normrM normfV// ltr_pdivrMr // ?mul1r//; last by rewrite gtr0_norm.
45174516
by rewrite [ltRHS]gtr0_norm ?ltrDr// ltr_pwDl.
45184517
Qed.
45194518

@@ -4561,25 +4560,23 @@ move=> r; rewrite inE le_eqVlt => /orP[|r1].
45614560
by [rewrite expand1|rewrite expandN1].
45624561
rewrite /expand 2!leNgt ltrNl; case/ltr_normlP : (r1) => -> -> /=.
45634562
have r_pneq0 : (1 + r / (1 - r) != 0)%R.
4564-
rewrite -[X in (X + _)%R](@divrr _ (1 - r)%R) -?mulrDl; last first.
4565-
by rewrite unitfE subr_eq0 eq_sym lt_eqF // ltr_normlW.
4563+
rewrite -[X in (X + _)%R](@divff _ (1 - r)%R) -?mulrDl; last first.
4564+
by rewrite subr_eq0 eq_sym lt_eqF // ltr_normlW.
45664565
by rewrite subrK mulf_neq0 // invr_eq0 subr_eq0 eq_sym lt_eqF // ltr_normlW.
45674566
have r_nneq0 : (1 - r / (1 + r) != 0)%R.
4568-
rewrite -[X in (X + _)%R](@divrr _ (1 + r)%R) -?mulrBl; last first.
4569-
by rewrite unitfE addrC addr_eq0 gt_eqF // ltrNnormlW.
4570-
rewrite addrK mulf_neq0 // invr_eq0 addr_eq0 -eqr_oppLR eq_sym gt_eqF //.
4571-
exact: ltrNnormlW.
4567+
rewrite -[X in (X + _)%R](@divff _ (1 + r)%R) -?mulrBl; last first.
4568+
by rewrite addrC addr_eq0 gt_eqF // ltrNnormlW.
4569+
by rewrite addrK mulf_neq0// invr_eq0 addr_eq0 -eqr_oppLR lt_eqF// ltrNnormlW.
45724570
wlog : r r1 r_pneq0 r_nneq0 / (0 <= r)%R => wlog_r0.
45734571
have [r0|r0] := lerP 0 r; first by rewrite wlog_r0.
45744572
move: (wlog_r0 (- r)%R).
45754573
rewrite !(normrN, opprK, mulNr) oppr_ge0 => /(_ r1 r_nneq0 r_pneq0 (ltW r0)).
4576-
by move/eqP; rewrite eqr_opp => /eqP.
4574+
by move/oppr_inj.
45774575
rewrite /contract !ger0_norm //; last first.
45784576
by rewrite divr_ge0 // subr_ge0 (le_trans _ (ltW r1)) // ler_norm.
4579-
apply: (@mulIr _ (1 + r / (1 - r))%R); first by rewrite unitfE.
4580-
rewrite -(mulrA (r / _)%R) mulVr ?unitfE // mulr1.
4581-
rewrite -[X in (X + _ / _)%R](@divrr _ (1 - r)%R) -?mulrDl ?subrK ?div1r //.
4582-
by rewrite unitfE subr_eq0 eq_sym lt_eqF // ltr_normlW.
4577+
apply: (@mulIf _ (1 + r / (1 - r))%R); rewrite // divfK//.
4578+
rewrite -[X in (X + _ / _)%R](@divff _ (1 - r)%R) -?mulrDl ?subrK ?div1r //.
4579+
by rewrite subr_eq0 eq_sym lt_eqF // ltr_normlW.
45834580
Qed.
45844581

45854582
Lemma le_contract : {mono contract : x y / (x <= y)%O}.

theories/charge.v

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -864,7 +864,7 @@ have : cvg (series (fun n => fine (maxe (z_ (v n) * 2^-1%:E) (- 1%E))) n @[n -->
864864
move/cvg_series_cvg_0 => maxe_cvg_0.
865865
apply: not_s_cvg_0.
866866
rewrite (_ : _ \o _ = (fun n => z_ (v n) * 2^-1%:E) \* cst 2%:E); last first.
867-
by apply/funext => n/=; rewrite -muleA -EFinM mulVr ?mule1// unitfE.
867+
by apply/funext => n/=; rewrite -muleA -EFinM mulVf ?mule1.
868868
rewrite (_ : 0 = 0 * 2%:E); last by rewrite mul0e.
869869
apply: cvgeM; [by rewrite mule_def_fin| |exact: cvg_cst].
870870
apply/fine_cvgP; split.
@@ -1586,8 +1586,8 @@ exists (PosNum e_gt0); rewrite ge0_integralD//; last 2 first.
15861586
rewrite integral_cst// -lteBrDr//; last first.
15871587
by rewrite fin_numM// fin_num_measure.
15881588
rewrite -[X in _ * X](@fineK _ (mu A)) ?fin_num_measure//.
1589-
rewrite -EFinM -mulrA mulVr ?mulr1; last first.
1590-
by rewrite unitfE gt_eqF// fine_gt0// muA_gt0/= ltey_eq fin_num_measure.
1589+
rewrite -EFinM -mulrA mulVf ?mulr1; last first.
1590+
by rewrite gt_eqF// fine_gt0// muA_gt0/= ltey_eq fin_num_measure.
15911591
rewrite lteBrDl// addeC -lteBrDl//; last first.
15921592
rewrite -(@fineK _ (nu A))// ?fin_num_measure// -[X in _ - X](@fineK _)//.
15931593
rewrite -EFinB lte_fin /mid ltr_pdivrMr// ltr_pMr// ?ltr1n// subr_gt0.

theories/derive.v

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -341,8 +341,7 @@ rewrite add0r normrN normrZ -ltr_pdivlMl ?normr_gt0 ?invr_neq0 //.
341341
have /Hi/le_lt_trans -> // : ball 0 i (j *: v).
342342
by rewrite -ball_normE/= add0r normrN (le_lt_trans _ jvi) // normrZ.
343343
rewrite -(mulrC e) -mulrA -ltr_pdivlMl // mulrA mulVf ?gt_eqF//.
344-
rewrite normrV ?unitfE // div1r invrK ltr_pdivrMl; last first.
345-
by rewrite pmulr_rgt0 // normr_gt0.
344+
rewrite normfV div1r invrK ltr_pdivrMl; last by rewrite pmulr_rgt0 // normr_gt0.
346345
rewrite normrZ mulrC -mulrA.
347346
by rewrite ltr_pMl ?ltr1n // pmulr_rgt0 ?normm_gt0 // normr_gt0.
348347
Qed.
@@ -709,8 +708,8 @@ suff /he : ball 0 e%:num (k^-1 *: x).
709708
rewrite -ball_normE /= distrC subr0 => /ltW /le_trans; apply.
710709
by rewrite ger0_norm /k // mulVf.
711710
rewrite -ball_normE /= distrC subr0 normrZ.
712-
rewrite normfV ger0_norm /k // invrM ?unitfE // mulrAC mulVf //.
713-
by rewrite invf_div mul1r [ltRHS]splitr; apply: ltr_pwDr.
711+
rewrite normfV ger0_norm /k // invfM/= -mulrA mulVf ?gt_eqF//.
712+
by rewrite mulr1 invf_div gtr_pMr// invf_lt1// ltr1n.
714713
Qed.
715714

716715
Lemma linear_eqO (V' W' : normedModType R) (f : {linear V' -> W'}) :
@@ -784,10 +783,8 @@ suff /he : ball 0 e%:num (ku^-1 *: u, kv^-1 *: v).
784783
by rewrite mulrA [ku * _]mulrAC expr2.
785784
rewrite -ball_normE /= distrC subr0.
786785
have -> : (ku^-1 *: u, kv^-1 *: v) =
787-
(e%:num / 2) *: ((PosNum un0)%:num ^-1 *: u, (PosNum vn0)%:num ^-1 *: v).
788-
rewrite invrM ?unitfE // [kv ^-1]invrM ?unitfE //.
789-
rewrite mulrC -[_ *: u]scalerA [X in X *: v]mulrC -[_ *: v]scalerA.
790-
by rewrite invf_div.
786+
(e%:num / 2) *: ((PosNum un0)%:num ^-1 *: u, (PosNum vn0)%:num ^-1 *: v).
787+
by rewrite invfM [kv ^-1]invfM invf_div -[_ *: u]scalerA -[_ *: v]scalerA.
791788
rewrite normrZ ger0_norm // -mulrA gtr_pMr // ltr_pdivrMl // mulr1.
792789
by rewrite prod_normE/= !normrZ !normfV !normr_id !mulVf ?gt_eqF// maxxx ltr1n.
793790
Qed.

theories/exp.v

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1003,7 +1003,7 @@ rewrite le_eqVlt => /predU1P[<-|a0].
10031003
by rewrite powR0 ?invr_eq0 ?pnatr_eq0// sqrtr0.
10041004
have /eqP : (a `^ (2^-1)) ^+ 2 = (Num.sqrt a) ^+ 2.
10051005
rewrite sqr_sqrtr; last exact: ltW.
1006-
by rewrite /powR gt_eqF// -expRM_natl mulrA divrr ?mul1r ?unitfE// lnK.
1006+
by rewrite /powR gt_eqF// -expRM_natl mulrA divff ?mul1r// lnK.
10071007
rewrite eqf_sqr => /predU1P[//|/eqP h].
10081008
have : 0 < a `^ 2^-1 by exact: powR_gt0.
10091009
by rewrite h oppr_gt0 ltNge sqrtr_ge0.

theories/hoelder.v

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -440,9 +440,9 @@ rewrite [leLHS](_ : _ = 'N_1[(F \* G)%R] * 'N_p%:E[f] * 'N_q%:E[g]); last first.
440440
rewrite -!muleA [X in _ * X](_ : _ = 1) ?mule1// EFinM muleACA.
441441
rewrite (_ : _ * 'N_p%:E[f] = 1) ?mul1e; last first.
442442
rewrite -[X in _ * X]fineK; last by rewrite ge0_fin_numE ?ltey// Lnorm_ge0.
443-
by rewrite -EFinM mulVr ?unitfE ?gt_eqF// fine_gt0// fpos/= ltey.
443+
by rewrite -EFinM mulVf ?gt_eqF// fine_gt0// fpos/= ltey.
444444
rewrite -[X in _ * X]fineK; last by rewrite ge0_fin_numE ?ltey// Lnorm_ge0.
445-
by rewrite -EFinM mulVr ?unitfE ?gt_eqF// fine_gt0// gpos/= ltey.
445+
by rewrite -EFinM mulVf ?gt_eqF// fine_gt0// gpos/= ltey.
446446
rewrite -(mul1e ('N_p%:E[f] * _)) -muleA lee_pmul ?mule_ge0 ?Lnorm_ge0//.
447447
rewrite [leRHS](_ : _ = \int[mu]_x (F x `^ p / p + G x `^ q / q)%:E).
448448
rewrite Lnorm1 ae_ge0_le_integral //.

theories/landau.v

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1334,8 +1334,8 @@ rewrite eqOmegaE eqOmegaO [in RHS]bigOE //.
13341334
have [W1 k1 ?] := bigOmega; have [W2 k2 ?] := bigOmega.
13351335
near=> k; near=> x; rewrite [`|_|]normrM.
13361336
rewrite (@le_trans _ _ ((k2%:num * k1%:num)^-1 * `|(W1 * W2) x|)) //.
1337-
rewrite invrM ?unitfE ?gtr_eqF // -mulrA ler_pdivlMl //.
1338-
rewrite ler_pdivlMl // (mulrA k1%:num) mulrCA (@normrM _ (W1 x)).
1337+
rewrite invfM -mulrA ler_pdivlMl// ler_pdivlMl//.
1338+
rewrite (mulrCA k2%:num) (mulrA k1%:num) (@normrM _ (W1 x)).
13391339
by rewrite ler_pM ?mulr_ge0 //; near: x.
13401340
by rewrite ler_wpM2r // ltW //.
13411341
Unshelve. all: by end_near. Qed.

theories/lebesgue_measure.v

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -626,14 +626,13 @@ rewrite itv_bnd_open_bigcup//; transitivity (limn (lebesgue_measure \o
626626
- by move=> ?; exact: measurable_itv.
627627
- by apply: bigcup_measurable => k _; exact: measurable_itv.
628628
- move=> n m nm; apply/subsetPset => x /=; rewrite !in_itv/= => /andP[->/=].
629-
by move/le_trans; apply; rewrite lerB// ler_pV2 ?ler_nat//;
630-
rewrite inE ltr0n andbT unitfE.
629+
by move/le_trans; apply; rewrite lerB// lef_pV2 ?ler_nat ?posrE.
631630
rewrite (_ : _ \o _ = (fun n => (1 - n.+1%:R^-1)%:E)); last first.
632631
apply/funext => n /=; rewrite lebesgue_measure_itvoc.
633632
have [->|n0] := eqVneq n 0%N.
634633
by rewrite invr1 subrr set_itvoc0 wlength0.
635634
rewrite wlength_itv/= lte_fin ifT; last first.
636-
by rewrite ler_ltB// invr_lt1 ?unitfE// ltr1n ltnS lt0n.
635+
by rewrite ler_ltB// invf_lt1// ltr1n ltnS lt0n.
637636
by rewrite !(EFinB,EFinN) fin_num_oppeB// addeAC addeA subee// add0e.
638637
apply/cvg_lim => //=; apply/fine_cvgP; split => /=; first exact: nearW.
639638
apply/(@cvgrPdist_lt _ R^o) => _/posnumP[e].

theories/measurable_realfun.v

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -995,7 +995,7 @@ move=> mf mg; rewrite (_ : (_ \* _) = (fun x => 2%:R^-1 * (f x + g x) ^+ 2)
995995
exact: measurableT_comp (exprn_measurable _) _.
996996
rewrite funeqE => x /=; rewrite -2!mulrBr sqrrD (addrC (f x ^+ 2)) -addrA.
997997
rewrite -(addrA (f x * g x *+ 2)) -opprB opprK (addrC (g x ^+ 2)) addrK.
998-
by rewrite -(mulr_natr (f x * g x)) -(mulrC 2) mulrA mulVr ?mul1r// unitfE.
998+
by rewrite -(mulr_natr (f x * g x)) -(mulrC 2) mulrA mulVf ?mul1r.
999999
Qed.
10001000

10011001
Lemma measurable_fun_ltr D f g : measurable_fun D f -> measurable_fun D g ->

theories/measure.v

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3618,7 +3618,7 @@ Proof.
36183618
rewrite /mnormalize; case: ifPn; first by rewrite probability_setT.
36193619
rewrite negb_or => /andP[ft0 ftoo].
36203620
have ? : mu setT \is a fin_num by rewrite ge0_fin_numE// ltey.
3621-
by rewrite -{1}(@fineK _ (mu setT))// -EFinM divrr// ?unitfE fine_eq0.
3621+
by rewrite -{1}(@fineK _ (mu setT))// -EFinM divff// fine_eq0.
36223622
Qed.
36233623

36243624
HB.instance Definition _ :=

theories/normedtype_theory/normed_module.v

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1975,7 +1975,7 @@ have [es|se] := leP s e%:num; last first.
19751975
by apply: B0y; rewrite -ball_normE /ball_ /= distrC xye.
19761976
exists (y + (s / 2) *: (`|x - y|^-1 *: (x - y))); split; [apply: Be|apply: B0y].
19771977
rewrite /= opprD addrA -[X in `|X - _|](scale1r (x - y)) scalerA -scalerBl.
1978-
rewrite -[X in X - _](@divrr _ `|x - y|) ?unitfE ?normr_eq0 ?subr_eq0//.
1978+
rewrite -[X in X - _](@divff _ `|x - y|) ?normr_eq0 ?subr_eq0//.
19791979
rewrite -mulrBl -scalerA normrZ normfZV ?subr_eq0// mulr1.
19801980
rewrite gtr0_norm; first by rewrite ltrBlDl xye ltrDr mulr_gt0.
19811981
by rewrite subr_gt0 xye ltr_pdivrMr // mulr_natr mulr2n ltr_pwDl.

0 commit comments

Comments
 (0)