Skip to content

Commit 2e85ddc

Browse files
authored
fix #1967 (#2088)
1 parent 73c7aa2 commit 2e85ddc

2 files changed

Lines changed: 39 additions & 45 deletions

File tree

theories/topology_theory/initial_topology.v

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@ Definition initial_ent : set_system (S * S) :=
138138
Let initial_ent_filter : Filter initial_ent.
139139
Proof.
140140
apply: filter_from_filter; first by exists setT; exact: entourageT.
141-
by move=> P Q ??; (exists (P `&` Q); first exact: filterI) => ?.
141+
by move=> P Q ? ?; (exists (P `&` Q); first exact: filterI) => ?.
142142
Qed.
143143

144144
Let initial_ent_refl A : initial_ent A -> diagonal `<=` A.

theories/topology_theory/subspace_topology.v

Lines changed: 38 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -154,8 +154,7 @@ Qed.
154154

155155
Lemma open_subspace_out (U : set (subspace A)) : U `<=` ~` A -> open U.
156156
Proof.
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.
159158
by apply: bigcup_open => ? ?; apply: open_subspace1out; exact: Usub.
160159
Qed.
161160

@@ -356,14 +355,14 @@ Lemma continuous_subspaceT_for {U} A (f : T -> U) (x : T) :
356355
Proof.
357356
rewrite /continuous_at /prop_for => inA ctsf.
358357
have [_|//] := 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.
360359
Qed.
361360

362361
Lemma continuous_in_subspaceT {U} A (f : T -> U) :
363362
{in A, continuous f} -> {within A, continuous f}.
364363
Proof.
365364
rewrite continuous_subspace_in ?in_setP => ctsf t At.
366-
by apply: continuous_subspaceT_for => //=; apply: ctsf.
365+
by apply: continuous_subspaceT_for => //=; exact: ctsf.
367366
Qed.
368367

369368
Lemma continuous_subspaceT {U} A (f : T -> U) :
@@ -385,7 +384,7 @@ by split => + x /[dup] Ax /oA Aox => /(_ _ Ax);
385384
Qed.
386385

387386
Lemma 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.
389388
Proof.
390389
move=> oA; rewrite -continuous_open_subspace// continuousP.
391390
by under eq_forall do rewrite -open_setSI//.
@@ -449,34 +448,32 @@ move=> [x y] /=; case; first (by move=> ->; split=> /=; left).
449448
by move=> [Ax [Ay [Pxy Qxy]]]; split=> /=; right.
450449
Qed.
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.
459457
Proof.
460-
move=> ?; case=> V ? Vsub; exists V^-1; first exact: entourage_inv.
458+
case=> V ? Vsub; exists V^-1; first exact: entourage_inv.
461459
move=> [x y] /= G; apply: Vsub; case: G; first by (move=> <-; left).
462460
by move=> [? [? Vxy]]; right; repeat split.
463461
Qed.
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.
468465
Proof.
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).
472469
move=> [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.
480477
Qed.
481478

482479
Let subspace_uniform_nbhsE : @nbhs _ (subspace A) = nbhs_ subspace_ent.
@@ -525,8 +522,7 @@ rewrite /subspace_ball; case: ifP => //= /asboolP ? ?.
525522
by split=> //; exact: ballxx.
526523
Qed.
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.
530526
Proof.
531527
rewrite /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=> _ _ -> ->.
544540
Qed.
545541

546-
Let subspace_pm_entourageE :
547-
@entourage (subspace A) = entourage_ subspace_ball.
542+
Let subspace_pm_entourageE : @entourage (subspace A) = entourage_ subspace_ball.
548543
Proof.
549544
rewrite eqEsubset; split; rewrite /subspace_ball.
550545
move=> U [W + subU]; rewrite -entourage_ballE => [[eps] nneg subW].
@@ -571,8 +566,7 @@ Proof. by []. Qed.
571566
End SubspacePseudoMetric.
572567

573568
Section SubspaceInitial.
574-
Context {T : topologicalType} {U : choiceType}.
575-
Variables (f : U -> T).
569+
Context {T : topologicalType} {U : choiceType} (f : U -> T).
576570

577571
Lemma 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.
596590
move: Aco; rewrite -[A]setIid => /compact_subspaceIP; rewrite setIid.
597591
case /(_ 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.
599593
move=> 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.
601595
by move=> /clsGp /(_ p_Cf) [q [[]]]; exists (f q).
602596
Qed.
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).
607601
Proof.
@@ -645,7 +639,7 @@ Qed.
645639

646640
Lemma 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}.
650644
Proof.
651645
split; first by move=> ? ?; near=> U; apply: continuous_subspaceT=> ?; exact.
@@ -666,7 +660,7 @@ Section subspace_product.
666660
Context {X Y Z : topologicalType} (A : set X) (B : set Y) .
667661

668662
Lemma 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.
670664
Proof.
671665
case: x => a b [/= Aa Bb]; rewrite /nbhs/= -nbhs_subspace_in//.
672666
rewrite funeqE => U /=; rewrite propeqE; split; rewrite /nbhs /=.
@@ -688,6 +682,7 @@ Proof.
688682
by split; rewrite continuous_subspace_in => + x ABx U nfxU => /(_ x ABx U nfxU);
689683
rewrite nbhs_prodX_subspace_inE//; move/set_mem: ABx.
690684
Qed.
685+
691686
End subspace_product.
692687

693688
#[short(type = "continuousSubspaceType")]
@@ -701,8 +696,8 @@ Notation continuousFunType := continuousSubspaceType.
701696
Notation ContinuousFun A B := (ContinuousSubspace A B).
702697

703698
Section 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).
708703
Proof.
@@ -717,13 +712,12 @@ Qed.
717712
End continuous_fun_comp.
718713

719714
Section 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

728722
Lemma withinU_continuous_patch : {within A `|` B, continuous (patch g A f)}.
729723
Proof.

0 commit comments

Comments
 (0)