154154
155155Lemma open_subspace_out (U : set (subspace A)) : U `<=` ~` A -> open U.
156156Proof .
157- move=> Usub; rewrite (_ : U = \bigcup_(i in U) [set i]).
158- by rewrite eqEsubset; split => x; [move=> ?; exists x|case=> i ? ->].
157+ move=> Usub; rewrite -(image_id U) -bigcup_imset1.
159158by apply: bigcup_open => ? ?; apply: open_subspace1out; exact: Usub.
160159Qed .
161160
@@ -356,14 +355,14 @@ Lemma continuous_subspaceT_for {U} A (f : T -> U) (x : T) :
356355Proof .
357356rewrite /continuous_at /prop_for => inA ctsf.
358357have [_|//] := nbhs_subspaceP A x.
359- apply: (cvg_trans _ ctsf); apply: cvg_fmap2; apply : cvg_within.
358+ by apply: (cvg_trans _ ctsf); apply: cvg_fmap2; exact : cvg_within.
360359Qed .
361360
362361Lemma continuous_in_subspaceT {U} A (f : T -> U) :
363362 {in A, continuous f} -> {within A, continuous f}.
364363Proof .
365364rewrite continuous_subspace_in ?in_setP => ctsf t At.
366- by apply: continuous_subspaceT_for => //=; apply : ctsf.
365+ by apply: continuous_subspaceT_for => //=; exact : ctsf.
367366Qed .
368367
369368Lemma continuous_subspaceT {U} A (f : T -> U) :
@@ -385,7 +384,7 @@ by split => + x /[dup] Ax /oA Aox => /(_ _ Ax);
385384Qed .
386385
387386Lemma continuous_inP {U} A (f : T -> U) : open A ->
388- {in A, continuous f} <-> forall X, open X -> open (A `&` f @^-1` X) .
387+ {in A, continuous f} <-> open `<=` image_set_system A f open .
389388Proof .
390389move=> oA; rewrite -continuous_open_subspace// continuousP.
391390by under eq_forall do rewrite -open_setSI//.
@@ -449,34 +448,32 @@ move=> [x y] /=; case; first (by move=> ->; split=> /=; left).
449448by move=> [Ax [Ay [Pxy Qxy]]]; split=> /=; right.
450449Qed .
451450
452- Let subspace_uniform_entourage_diagonal :
453- forall X : set (subspace A * subspace A),
454- subspace_ent X -> diagonal `<=` X.
455- Proof . by move=> ? + [x y]/diagonalP ->; case=> V entV; apply; left. Qed .
451+ Let subspace_uniform_entourage_diagonal (B : set (subspace A * subspace A)) :
452+ subspace_ent B -> diagonal `<=` B.
453+ Proof . by move=> + [x y]/diagonalP ->; case=> V entV; apply; left. Qed .
456454
457- Let subspace_uniform_entourage_inv : forall A : set (subspace A * subspace A),
458- subspace_ent A -> subspace_ent A ^-1.
455+ Let subspace_uniform_entourage_inv (B : set (subspace A * subspace A)) :
456+ subspace_ent B -> subspace_ent B ^-1.
459457Proof .
460- move=> ?; case=> V ? Vsub; exists V^-1; first exact: entourage_inv.
458+ case=> V ? Vsub; exists V^-1; first exact: entourage_inv.
461459move=> [x y] /= G; apply: Vsub; case: G; first by (move=> <-; left).
462460by move=> [? [? Vxy]]; right; repeat split.
463461Qed .
464462
465- Let subspace_uniform_entourage_split_ex :
466- forall A : set (subspace A * subspace A),
467- subspace_ent A -> exists2 B, subspace_ent B & B \; B `<=` A.
463+ Let subspace_uniform_entourage_split_ex (C : set (subspace A * subspace A)) :
464+ subspace_ent C -> exists2 B, subspace_ent B & B \; B `<=` C.
468465Proof .
469- move=> ?; case=> E entE Esub.
470- exists [set xy | xy.1 = xy.2 \/ A xy.1 /\ A xy.2 /\ split_ent E xy].
466+ case=> E entE Esub.
467+ exists [set xy | xy.1 = xy.2 \/ A xy.1 /\ A xy.2 /\ split_ent E xy].
471468 by exists (split_ent E).
472469move=> [x y] [z /= Ez zE] /=; case: Ez; case: zE.
473- - by move=> -> ->; apply: Esub; left.
474- - move=> [ ? []] ? G xy; subst; apply: Esub; right; repeat split => //=.
475- by apply: entourage_split => //=; first exact: G; exact: entourage_refl.
476- - move=> -> [ ? []] ? G; apply: Esub; right; repeat split => //=.
477- by apply: entourage_split => //=; first exact: G; exact: entourage_refl.
478- - move=> []? []? ?[]?[]??; apply: Esub; right; repeat split => //=.
479- by apply: subset_split_ent => //; exists z.
470+ - by move=> -> ->; apply: Esub; left.
471+ - move=> [ ? []] ? G xy; subst; apply: Esub; right; repeat split => //=.
472+ by apply: entourage_split => //=; first exact: G; exact: entourage_refl.
473+ - move=> -> [ ? []] ? G; apply: Esub; right; repeat split => //=.
474+ by apply: entourage_split => //=; first exact: G; exact: entourage_refl.
475+ - move=> []? []? ?[]?[]??; apply: Esub; right; repeat split => //=.
476+ by apply: subset_split_ent => //; exists z.
480477Qed .
481478
482479Let subspace_uniform_nbhsE : @nbhs _ (subspace A) = nbhs_ subspace_ent.
@@ -525,8 +522,7 @@ rewrite /subspace_ball; case: ifP => //= /asboolP ? ?.
525522by split=> //; exact: ballxx.
526523Qed .
527524
528- Let subspace_pm_ball_sym x y e :
529- subspace_ball x e y -> subspace_ball y e x.
525+ Let subspace_pm_ball_sym x y e : subspace_ball x e y -> subspace_ball y e x.
530526Proof .
531527rewrite /subspace_ball; case: ifP => //= /asboolP ?.
532528 by move=> [] Ay /ball_sym yBx; case: ifP => /asboolP.
@@ -543,8 +539,7 @@ rewrite /subspace_ball; (repeat case: ifP => /asboolP).
543539- by move=> _ _ -> ->.
544540Qed .
545541
546- Let subspace_pm_entourageE :
547- @entourage (subspace A) = entourage_ subspace_ball.
542+ Let subspace_pm_entourageE : @entourage (subspace A) = entourage_ subspace_ball.
548543Proof .
549544rewrite eqEsubset; split; rewrite /subspace_ball.
550545 move=> U [W + subU]; rewrite -entourage_ballE => [[eps] nneg subW].
@@ -571,8 +566,7 @@ Proof. by []. Qed.
571566End SubspacePseudoMetric.
572567
573568Section SubspaceInitial.
574- Context {T : topologicalType} {U : choiceType}.
575- Variables (f : U -> T).
569+ Context {T : topologicalType} {U : choiceType} (f : U -> T).
576570
577571Lemma initial_subspace_open (A : set (initial_topology f)) :
578572 open A -> open (f @` A : set (subspace (range f))).
@@ -595,13 +589,13 @@ have GF : ProperFilter G.
595589 - by move=> C /(filterI FfA) /filter_ex [_ [[p ? <-]]]; exists p.
596590move: Aco; rewrite -[A]setIid => /compact_subspaceIP; rewrite setIid.
597591case /(_ G); first by exists (f @` A) => // ? [].
598- move=> p [Ap clsGp]; exists (f p); split; first exact/imageP.
592+ move=> /= p [Ap clsGp]; exists (f p); split; first exact/imageP.
599593move=> B C FB /fcont p_Cf.
600- have : G (A `&` f @^-1` B) by exists B.
594+ have : image_set_system A f G B by exists B.
601595by move=> /clsGp /(_ p_Cf) [q [[]]]; exists (f q).
602596Qed .
603597
604- Lemma connected_continuous_connected ( T U : topologicalType)
598+ Lemma connected_continuous_connected { T U : topologicalType}
605599 (A : set T) (f : T -> U) :
606600 connected A -> {within A, continuous f} -> connected (f @` A).
607601Proof .
645639
646640Lemma continuous_localP {X Y : topologicalType} (f : X -> Y) :
647641 continuous f <->
648- forall ( x : X) , \forall U \near powerset_filter_from (nbhs x),
642+ forall x : X, \forall U \near powerset_filter_from (nbhs x),
649643 {within U, continuous f}.
650644Proof .
651645split; first by move=> ? ?; near=> U; apply: continuous_subspaceT=> ?; exact.
@@ -666,7 +660,7 @@ Section subspace_product.
666660Context {X Y Z : topologicalType} (A : set X) (B : set Y) .
667661
668662Lemma nbhs_prodX_subspace_inE x : (A `*` B) x ->
669- nbhs (x : subspace (A `*` B)) = @nbhs _ (subspace A * subspace B)%type x.
663+ nbhs (x : subspace (A `*` B)) = @nbhs _ (subspace A * subspace B)%type x.
670664Proof .
671665case: x => a b [/= Aa Bb]; rewrite /nbhs/= -nbhs_subspace_in//.
672666rewrite funeqE => U /=; rewrite propeqE; split; rewrite /nbhs /=.
@@ -688,6 +682,7 @@ Proof.
688682by split; rewrite continuous_subspace_in => + x ABx U nfxU => /(_ x ABx U nfxU);
689683 rewrite nbhs_prodX_subspace_inE//; move/set_mem: ABx.
690684Qed .
685+
691686End subspace_product.
692687
693688#[short(type = "continuousSubspaceType")]
@@ -701,8 +696,8 @@ Notation continuousFunType := continuousSubspaceType.
701696Notation ContinuousFun A B := (ContinuousSubspace A B).
702697
703698Section continuous_fun_comp.
704- Context {X Y Z : topologicalType} (A : set X) (B : set Y) (C : set Z).
705- Context {f : continuousSubspaceType A B} {g : continuousSubspaceType B C}.
699+ Context {X Y Z : topologicalType} (A : set X) (B : set Y) (C : set Z)
700+ {f : continuousSubspaceType A B} {g : continuousSubspaceType B C}.
706701
707702#[local] Lemma continuous_comp_subproof : continuous (g \o f : subspace A -> Z).
708703Proof .
@@ -717,13 +712,12 @@ Qed.
717712End continuous_fun_comp.
718713
719714Section continuous_patch.
720- Context {U V : topologicalType}.
721- Variables (A B : set U) (f g : U -> V).
722- Hypothesis contf : {within A, continuous f}.
723- Hypothesis contg : {within B, continuous g}.
724- Hypothesis closedA : closed A.
725- Hypothesis closedB : closed B.
726- Hypothesis AB_fg : forall x, x \in A `&` B -> f x = g x.
715+ Context {U V : topologicalType} (A B : set U) (f g : U -> V).
716+ Hypotheses (contf : {within A, continuous f})
717+ (contg : {within B, continuous g})
718+ (closedA : closed A)
719+ (closedB : closed B)
720+ (AB_fg : forall x, x \in A `&` B -> f x = g x).
727721
728722Lemma withinU_continuous_patch : {within A `|` B, continuous (patch g A f)}.
729723Proof .
0 commit comments