Skip to content

Commit 74427e4

Browse files
committed
mv sequeeze for R earlier
1 parent 4eaa6fb commit 74427e4

4 files changed

Lines changed: 110 additions & 83 deletions

File tree

CHANGELOG_UNRELEASED.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -226,6 +226,13 @@
226226
`ae_eq_Radon_Nikodym_SigmaFinite`, `Radon_Nikodym_change_of_variables`,
227227
`Radon_Nikodym_cscale`, `Radon_Nikodym_cadd`, `Radon_Nikodym_chain_rule`
228228

229+
- moved from `normed_module.v` to `metric_structure.v`
230+
+ lemma `squeeze_cvgr`
231+
232+
- moved from `pseudometric_normed_Zmodule.v` to `metric_structure.v`
233+
+ lemmas `real_cvgr_lt`, `real_cvgr_le`, `real_cvgr_le`, `real_cvgr_gt`
234+
+ lemmas `cvgr_lt`, `cvgr_gt`, `cvgr_ge`, `cvgr_le`
235+
229236
### Renamed
230237

231238
- in `tvs.v`:

theories/normedtype_theory/normed_module.v

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1307,16 +1307,6 @@ Section FilterRealType.
13071307
Context {T : Type} {a : set_system T} {Fa : Filter a} {R : realFieldType}.
13081308
Implicit Types f g h : T -> R.
13091309

1310-
Lemma squeeze_cvgr f h g : (\near a, f a <= g a <= h a) ->
1311-
forall (l : R), f @ a --> l -> h @ a --> l -> g @ a --> l.
1312-
Proof.
1313-
move=> fgh l lfa lga; apply/cvgrPdist_lt => e e_gt0.
1314-
near=> x; have /(_ _)/andP[//|fg gh] := near fgh x.
1315-
rewrite distrC ltr_distl (lt_le_trans _ fg) ?(le_lt_trans gh)//=.
1316-
by near: x; apply: (cvgr_gt l); rewrite // gtrDl oppr_lt0.
1317-
by near: x; apply: (cvgr_lt l); rewrite // ltrDl.
1318-
Unshelve. all: end_near. Qed.
1319-
13201310
Lemma ger_cvgy f g : (\near a, f a <= g a) ->
13211311
f @ a --> +oo -> g @ a --> +oo.
13221312
Proof.

theories/normedtype_theory/pseudometric_normed_Zmodule.v

Lines changed: 0 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -905,49 +905,6 @@ Arguments cvgr_norm_ley {R V I F FF}.
905905
Arguments cvgr_norm_gtNy {R V I F FF}.
906906
Arguments cvgr_norm_geNy {R V I F FF}.
907907

908-
Section at_left_rightR.
909-
Variable (R : numFieldType).
910-
911-
Lemma real_cvgr_lt {T} {F : set_system T} {FF : Filter F} (f : T -> R) (y : R) :
912-
y \is Num.real -> f @ F --> y ->
913-
forall z, z > y -> \forall t \near F, f t \is Num.real -> f t < z.
914-
Proof.
915-
move=> yr Fy z zy; near=> x => fxr.
916-
rewrite -(ltrD2r (- y)) real_ltr_normlW// ?rpredB//.
917-
by near: x; apply: (@cvgr_distC_lt R R^o) => //; rewrite subr_gt0.
918-
Unshelve. all: by end_near. Qed.
919-
920-
Lemma real_cvgr_le {T} {F : set_system T} {FF : Filter F} (f : T -> R) (y : R) :
921-
y \is Num.real -> f @ F --> y ->
922-
forall z, z > y -> \forall t \near F, f t \is Num.real -> f t <= z.
923-
Proof.
924-
move=> /real_cvgr_lt/[apply] + ? z0 => /(_ _ z0).
925-
by apply: filterS => ? /[apply]/ltW.
926-
Qed.
927-
928-
Lemma real_cvgr_gt {T} {F : set_system T} {FF : Filter F} (f : T -> R) (y : R) :
929-
y \is Num.real -> f @ F --> y ->
930-
forall z, y > z -> \forall t \near F, f t \is Num.real -> f t > z.
931-
Proof.
932-
move=> yr Fy z zy; near=> x => fxr.
933-
rewrite -ltrN2 -(ltrD2l y) real_ltr_normlW// ?rpredB//.
934-
by near: x; apply: (@cvgr_dist_lt _ R^o) => //; rewrite subr_gt0.
935-
Unshelve. all: by end_near. Qed.
936-
937-
Lemma real_cvgr_ge {T} {F : set_system T} {FF : Filter F} (f : T -> R) (y : R) :
938-
y \is Num.real -> f @ F --> y ->
939-
forall z, z < y -> \forall t \near F, f t \is Num.real -> f t >= z.
940-
Proof.
941-
move=> /real_cvgr_gt/[apply] + ? z0 => /(_ _ z0).
942-
by apply: filterS => ? /[apply]/ltW.
943-
Qed.
944-
945-
End at_left_rightR.
946-
Arguments real_cvgr_le {R T F FF f}.
947-
Arguments real_cvgr_lt {R T F FF f}.
948-
Arguments real_cvgr_ge {R T F FF f}.
949-
Arguments real_cvgr_gt {R T F FF f}.
950-
951908
Section realFieldType.
952909
Context (R : realFieldType).
953910

@@ -958,37 +915,7 @@ rewrite (@nbhsr0P _ R^o) -propeqE; apply: eq_near => y /=.
958915
by rewrite -propeqE; apply: eq_forall => z; rewrite ler_distlC.
959916
Qed.
960917

961-
Lemma cvgr_lt {T} {F : set_system T} {FF : Filter F} (f : T -> R) (y : R) :
962-
f @ F --> y -> forall z, z > y -> \forall t \near F, f t < z.
963-
Proof.
964-
move=> Fy z zy; near=> x; rewrite -(ltrD2r (- y)) ltr_normlW//.
965-
by near: x; apply: (@cvgr_distC_lt _ R^o) => //; rewrite subr_gt0.
966-
Unshelve. all: by end_near. Qed.
967-
968-
Lemma cvgr_le {T} {F : set_system T} {FF : Filter F} (f : T -> R) (y : R) :
969-
f @ F --> y -> forall z, z > y -> \forall t \near F, f t <= z.
970-
Proof.
971-
by move=> /cvgr_lt + ? z0 => /(_ _ z0); apply: filterS => ?; apply/ltW.
972-
Qed.
973-
974-
Lemma cvgr_gt {T} {F : set_system T} {FF : Filter F} (f : T -> R) (y : R) :
975-
f @ F --> y -> forall z, y > z -> \forall t \near F, f t > z.
976-
Proof.
977-
move=> Fy z zy; near=> x; rewrite -ltrN2 -(ltrD2l y) ltr_normlW//.
978-
by near: x; apply: (@cvgr_dist_lt _ R^o) => //; rewrite subr_gt0.
979-
Unshelve. all: by end_near. Qed.
980-
981-
Lemma cvgr_ge {T} {F : set_system T} {FF : Filter F} (f : T -> R) (y : R) :
982-
f @ F --> y -> forall z, z < y -> \forall t \near F, f t >= z.
983-
Proof.
984-
by move=> /cvgr_gt + ? z0 => /(_ _ z0); apply: filterS => ?; apply/ltW.
985-
Qed.
986-
987918
End realFieldType.
988-
Arguments cvgr_le {R T F FF f}.
989-
Arguments cvgr_lt {R T F FF f}.
990-
Arguments cvgr_ge {R T F FF f}.
991-
Arguments cvgr_gt {R T F FF f}.
992919

993920
Module Export NbhsNorm.
994921
Definition nbhs_simpl := (nbhs_simpl,@nbhs_nbhs_norm,@filter_from_norm_nbhs).

theories/topology_theory/metric_structure.v

Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -341,3 +341,106 @@ rewrite neq_lt => /orP[tp|pt].
341341
Unshelve. all: by end_near. Qed.
342342

343343
End cvg_at_right_left_dnbhs.
344+
345+
Section at_left_rightR.
346+
Variable (R : numFieldType).
347+
348+
(**md `cvgrPdistC_lt` is also defined in `pseudometric_normed_Zmodule.v` where it only needs `numDomainType` *)
349+
Let cvgrPdistC_lt {T} {F : set_system T} {FF : Filter F} (f : T -> R^o) (y : R) :
350+
f @ F --> y <-> forall eps, 0 < eps -> \forall t \near F, mdist (f t) y < eps.
351+
Proof.
352+
rewrite metricType_numDomainType.cvgrPdist_lt.
353+
by under eq_forall do under eq_near do rewrite /mdist/= (@distrC _ R^o).
354+
Qed.
355+
356+
(**md `cvgr_distC_lt` is also defined in `pseudometric_normed_Zmodule.v` where it only needs `numDomainType` *)
357+
Let cvgr_distC_lt {T} {F : set_system T} {FF : Filter F} (f : T -> R^o) (y : R) :
358+
f @ F --> y -> forall eps, eps > 0 -> \forall t \near F, mdist (f t) y < eps.
359+
Proof. by move=> /cvgrPdistC_lt. Qed.
360+
361+
Lemma real_cvgr_lt {T} {F : set_system T} {FF : Filter F} (f : T -> R) (y : R) :
362+
y \is Num.real -> f @ F --> y ->
363+
forall z, z > y -> \forall t \near F, f t \is Num.real -> f t < z.
364+
Proof.
365+
move=> yr Fy z zy; near=> x => fxr.
366+
rewrite -(ltrD2r (- y)) real_ltr_normlW// ?rpredB// distrC.
367+
by near: x; apply: cvgr_distC_lt => //; rewrite subr_gt0.
368+
Unshelve. all: by end_near. Qed.
369+
370+
Lemma real_cvgr_le {T} {F : set_system T} {FF : Filter F} (f : T -> R) (y : R) :
371+
y \is Num.real -> f @ F --> y ->
372+
forall z, z > y -> \forall t \near F, f t \is Num.real -> f t <= z.
373+
Proof.
374+
move=> /real_cvgr_lt/[apply] + ? z0 => /(_ _ z0).
375+
by apply: filterS => ? /[apply]/ltW.
376+
Qed.
377+
378+
Lemma real_cvgr_gt {T} {F : set_system T} {FF : Filter F} (f : T -> R) (y : R) :
379+
y \is Num.real -> f @ F --> y ->
380+
forall z, y > z -> \forall t \near F, f t \is Num.real -> f t > z.
381+
Proof.
382+
move=> yr Fy z zy; near=> x => fxr.
383+
rewrite -ltrN2 -(ltrD2l y) real_ltr_normlW// ?rpredB// distrC.
384+
by near: x; apply: (@metricType_numDomainType.cvgr_dist_lt _ R^o) => //; rewrite subr_gt0.
385+
Unshelve. all: by end_near. Qed.
386+
387+
Lemma real_cvgr_ge {T} {F : set_system T} {FF : Filter F} (f : T -> R) (y : R) :
388+
y \is Num.real -> f @ F --> y ->
389+
forall z, z < y -> \forall t \near F, f t \is Num.real -> f t >= z.
390+
Proof.
391+
move=> /real_cvgr_gt/[apply] + ? z0 => /(_ _ z0).
392+
by apply: filterS => ? /[apply]/ltW.
393+
Qed.
394+
395+
End at_left_rightR.
396+
Arguments real_cvgr_le {R T F FF f}.
397+
Arguments real_cvgr_lt {R T F FF f}.
398+
Arguments real_cvgr_ge {R T F FF f}.
399+
Arguments real_cvgr_gt {R T F FF f}.
400+
401+
Section squeeze_cvgr.
402+
Context {T : Type} {F : set_system T} {FF : Filter F} {R : realFieldType}.
403+
Implicit Types f g h : T -> R.
404+
405+
Lemma cvgr_lt f (y : R) :
406+
f @ F --> y -> forall z, z > y -> \forall t \near F, f t < z.
407+
Proof.
408+
move=> Fy z zy; near=> x; rewrite -(ltrD2r (- y)) ltr_normlW//.
409+
by near: x; apply: (@metricType_numDomainType.cvgr_dist_lt _ R^o) => //; rewrite subr_gt0.
410+
Unshelve. all: by end_near. Qed.
411+
412+
Lemma cvgr_gt f (y : R) :
413+
f @ F --> y -> forall z, y > z -> \forall t \near F, f t > z.
414+
Proof.
415+
move=> Fy z zy; near=> x; rewrite -ltrN2 -(ltrD2l y) ltr_normlW// distrC.
416+
by near: x; apply: (@metricType_numDomainType.cvgr_dist_lt _ R^o) => //; rewrite subr_gt0.
417+
Unshelve. all: by end_near. Qed.
418+
419+
Lemma cvgr_le f (y : R) :
420+
f @ F --> y -> forall z, z > y -> \forall t \near F, f t <= z.
421+
Proof.
422+
by move=> /cvgr_lt + ? z0 => /(_ _ z0); apply: filterS => ?; apply/ltW.
423+
Qed.
424+
425+
Lemma cvgr_ge f (y : R) :
426+
f @ F --> y -> forall z, z < y -> \forall t \near F, f t >= z.
427+
Proof.
428+
by move=> /cvgr_gt + ? z0 => /(_ _ z0); apply: filterS => ?; apply/ltW.
429+
Qed.
430+
431+
Lemma squeeze_cvgr f h g : (\near F, f F <= g F <= h F) ->
432+
forall (l : R), f @ F --> l -> h @ F --> l -> g @ F --> l.
433+
Proof.
434+
move=> fgh l lfa lga.
435+
apply/(@metricType_numDomainType.cvgrPdist_lt R R^o) => e e_gt0.
436+
near=> x; have /(_ _)/andP[//|fg gh] := near fgh x.
437+
rewrite ltr_distl (lt_le_trans _ fg) ?(le_lt_trans gh)//=.
438+
by near: x; apply: (cvgr_gt lfa); rewrite // gtrDl oppr_lt0.
439+
by near: x; apply: (cvgr_lt lga); rewrite // ltrDl.
440+
Unshelve. all: end_near. Qed.
441+
442+
End squeeze_cvgr.
443+
Arguments cvgr_lt {T F FF R f}.
444+
Arguments cvgr_gt {T F FF R f}.
445+
Arguments cvgr_le {T F FF R f}.
446+
Arguments cvgr_ge {T F FF R f}.

0 commit comments

Comments
 (0)