@@ -925,18 +925,36 @@ Lemma near_eq_cvg {T U} {F : set_system T} {FF : Filter F} (f g : T -> U) :
925925 {near F, f =1 g} -> g @ F `=>` f @ F.
926926Proof . by move=> eq_fg P /=; apply: filterS2 eq_fg => x /= <-. Qed .
927927
928- Lemma eq_cvg (T T' : Type ) (F : set_system T) (f g : T -> T') (x : set_system T') :
928+ Lemma near_eq_cvg_eq {T U} {F : set_system T} {FF : Filter F} (f g : T -> U) :
929+ {near F, f =1 g} -> f @ F = g @ F.
930+ Proof .
931+ move=> fg; apply/seteqP; split; apply: near_eq_cvg => //.
932+ by near do symmetry.
933+ Unshelve. all: by end_near. Qed .
934+
935+ Lemma eq_cvg (T U : Type ) (F : set_system T) (f g : T -> U) (x : set_system U) :
929936 f =1 g -> (f @ F --> x) = (g @ F --> x).
930937Proof . by move=> /funext->. Qed .
931938
932- Lemma eq_is_cvg_in (T T' : Type ) (fT : pfilteredType T') (F : set_system T) (f g : T -> T') :
939+ Lemma near_eq_is_cvg (T : Type ) (U : pnbhsType) (F : set_system T)
940+ (f g : T -> U) :
941+ Filter F -> {near F, f =1 g} -> cvg (f x @[x --> F]) -> cvg(g x @[x --> F]).
942+ Proof . by move=> FF /near_eq_cvg_eq ->. Qed .
943+
944+ Lemma eq_is_cvg_in (T U : Type ) (fT : pfilteredType U) (F : set_system T)
945+ (f g : T -> U) :
933946 f =1 g -> [cvg (f @ F) in fT] = [cvg (g @ F) in fT].
934- Proof . by move=> /funext->. Qed .
947+ Proof . by move=> /funext ->. Qed .
935948
936- Lemma eq_is_cvg (T : Type ) (T' : pnbhsType) (F : set_system T) (f g : T -> T' ) :
949+ Lemma eq_is_cvg (T : Type ) (U : pnbhsType) (F : set_system T) (f g : T -> U ) :
937950 f =1 g -> cvg (f @ F) = cvg (g @ F).
938951Proof . by move=> /funext->. Qed .
939952
953+ Lemma near_eq_lim (T : Type ) (U : pnbhsType) {F : set_system T} {FF : Filter F}
954+ (f g : T -> U) :
955+ {near F, f =1 g} -> lim (f @ F) = lim (g @ F).
956+ Proof . by move=> /near_eq_cvg_eq ->. Qed .
957+
940958Lemma neari_eq_loc {T U} {F : set_system T} {FF : Filter F} (f g : T -> set U) :
941959 {near F, f =2 g} -> g `@ F `=>` f `@ F.
942960Proof .
@@ -1197,11 +1215,23 @@ Qed.
11971215
11981216End within.
11991217
1218+ Lemma cvg_to_withinP (T U : Type ) {F : set_system T} {FF : Filter F}
1219+ {G : set_system U} {FG : Filter G} (f : T -> U) (A : set U) :
1220+ (f @ F --> within A G) <-> (f @ F --> G /\ \forall x \near F, A (f x)).
1221+ Proof .
1222+ split.
1223+ - move=> fFAG; split.
1224+ + exact/(cvg_trans fFAG)/cvg_within.
1225+ + by apply/fFAG; exact: withinT.
1226+ - move=> [+ fA] B => /[apply]; rewrite 2!nbhs_nearE !near_map.
1227+ by apply: filterS2 fA => t ?; exact.
1228+ Unshelve. all: by end_near. Qed .
1229+
12001230Global Instance within_filter T D F : Filter F -> Filter (@within T D F).
12011231Proof .
12021232move=> FF; rewrite /within; constructor => /=.
1203- - by apply : filterE.
1204- - by move=> P Q/=; apply: filterS2 => x DP DQ Dx; split; [apply : DP|apply : DQ].
1233+ - exact : filterE.
1234+ - by move=> P Q/=; apply: filterS2 => x DP DQ Dx; split; [exact : DP|exact : DQ].
12051235- by move=> P Q subPQ; apply: filterS => x DP /DP /subPQ.
12061236Qed .
12071237
@@ -1210,8 +1240,18 @@ Qed.
12101240Canonical within_filter_on T D (F : filter_on T) :=
12111241 FilterType (within D F) (within_filter _ _).
12121242
1243+ Lemma within_cvg_to_within {T U : Type } {F : set_system T} {FF : Filter F}
1244+ {G : set_system U} {FG : Filter G} (f : T -> U) (A : set T) (B : set U) :
1245+ (\forall x \near F, A x -> B (f x)) -> f @ F --> G ->
1246+ f @ within A F --> within B G.
1247+ Proof .
1248+ move=> near_hom fFG; apply/cvg_to_withinP; split.
1249+ - by apply: cvg_trans fFG; apply: cvg_app; exact: cvg_within.
1250+ - by rewrite near_withinE.
1251+ Qed .
1252+
12131253Lemma filter_bigI_within T (I : choiceType) (D : {fset I}) (f : I -> set T)
1214- (F : set_system T) (P : set T) :
1254+ (F : set_system T) (P : set T) :
12151255 Filter F -> (forall i, i \in D -> F [set j | P j -> f i j]) ->
12161256 F ([set j | P j -> (\bigcap_(i in [set` D]) f i) j]).
12171257Proof . move=> FF FfD; exact: (@filter_bigI T I D f _ (within_filter P FF)). Qed .
0 commit comments