@@ -182,43 +182,43 @@ Qed.
182182
183183Lemma open_subspaceP (U : set T) :
184184 open (U : set (subspace A)) <->
185- exists V, open (V : set T) /\ V `&` A = U `&` A.
185+ exists2 V, open (V : set T) & V `&` A = U `&` A.
186186Proof .
187187split; first last.
188- case=> V [ oV UV] ; rewrite -open_subspaceIT -UV.
188+ case=> V oV UV; rewrite -open_subspaceIT -UV.
189189 move=> x //= []; case: nbhs_subspaceP; rewrite //= withinE.
190- move=> ? ? _; exists V; last by rewrite -setIA setIid.
191- by move: oV; rewrite openE /interior; apply .
190+ move=> Ax Vx _; exists V; last by rewrite -setIA setIid.
191+ by move: oV; rewrite openE /interior; exact .
192192rewrite -open_subspaceIT => oUA.
193- have oxF : forall x : T, (U `&` A) x ->
194- exists V, ( open_nbhs (x : T) V) /\ ( V `&` A `<=` U `&` A) .
195- move=> x /[dup] UAx /= [??]; move: (oUA _ UAx);
196- case: nbhs_subspaceP => // ? .
197- rewrite withinE /= => [[ V nbhsV UV]] ; rewrite -setIA setIid in UV.
198- exists V°; split; first rewrite open_nbhsE; first split => //.
193+ have oxF ( x : T) : (U `&` A) x ->
194+ exists2 V, open_nbhs (x : T) V & V `&` A `<=` U `&` A.
195+ move=> /[dup] UAx /= [Ux Ax].
196+ have := oUA _ UAx; case: nbhs_subspaceP => // _ .
197+ rewrite withinE /= => -[ V nbhsV] ; rewrite -setIA setIid => UV.
198+ exists V°; first rewrite open_nbhsE; first split => //.
199199 - exact: open_interior.
200200 - exact: nbhs_interior.
201- - by rewrite UV=> t [/interior_subset] ??; split .
201+ - by rewrite UV => t [/interior_subset].
202202pose f (x : T) :=
203- if pselect ((U `&` A) x) is left e then projT1 (cid (oxF x e)) else set0.
204- set V := \bigcup_(x in ( U `&` A)) ( f x) ; exists V; split .
205- apply: bigcup_open => i UAi; rewrite /f; case: pselect => // ?; case: (cid _) .
206- by move=> //= W; rewrite open_nbhsE=> -[[] ].
203+ if pselect ((U `&` A) x) is left e then projT1 (cid2 (oxF x e)) else set0.
204+ set V := \bigcup_(x in U `&` A) f x; exists V.
205+ apply: bigcup_open => i UAi; rewrite /f; case: pselect => // ?; case: cid2 .
206+ by move=> //= W; rewrite open_nbhsE => -[].
207207rewrite eqEsubset /V /f; split.
208208 move=> t [[u]] UAu /=; case: pselect => //= ?.
209- by case: (cid _) => //= W [] _ + ? ?; apply; split .
209+ by case: cid2 => //= W _ + ? ? ; apply; exact .
210210move=> t UAt; split => //; last by case: UAt.
211211exists t => //; case: pselect => //= [[? ?]].
212- by case: (cid _) => //= W [] [] _ .
212+ by case: cid2 => //= W [].
213213Qed .
214214
215215Lemma closed_subspaceP (U : set T) :
216216 closed (U : set (subspace A)) <->
217- exists V, closed (V : set T) /\ V `&` A = U `&` A.
217+ exists2 V, closed (V : set T) & V `&` A = U `&` A.
218218Proof .
219- rewrite -openC open_subspaceP.
220- under [X in _ <-> X] eq_exists => V do rewrite -openC.
221- by split => -[V [? VU]]; exists (~` V); split; rewrite ?setCK //;
219+ rewrite -openC open_subspaceP !exists2E .
220+ under [X in _ <-> X]eq_exists => x do rewrite -openC.
221+ by split => -[V [? VU]]; exists (~` V); rewrite ?setCK //;
222222 move/(congr1 setC): VU; rewrite ?eqEsubset ?setCI ?setCK; firstorder.
223223Qed .
224224
@@ -234,8 +234,8 @@ Lemma open_setIS (U : set (subspace A)) : open A ->
234234 open (U `&` A : set T) = open U.
235235Proof .
236236move=> oA; apply/propext; rewrite open_subspaceP.
237- split=> [|[V [ oV <-] ]]; last exact: openI.
238- by move=> oUA; exists (U `&` A); rewrite -setIA setIid.
237+ split=> [|[V oV <-]]; last exact: openI.
238+ by move=> oUA; exists (U `&` A); rewrite // -setIA setIid.
239239Qed .
240240
241241Lemma open_setSI (U : set (subspace A)) : open A -> open (A `&` U) = open U.
@@ -245,8 +245,8 @@ Lemma closed_setIS (U : set (subspace A)) : closed A ->
245245 closed (U `&` A : set T) = closed U.
246246Proof .
247247move=> oA; apply/propext; rewrite closed_subspaceP.
248- split=> [|[V [ oV <-] ]]; last exact: closedI.
249- by move=> oUA; exists (U `&` A); rewrite -setIA setIid.
248+ split=> [|[V oV <-]]; last exact: closedI.
249+ by move=> oUA; exists (U `&` A); rewrite // -setIA setIid.
250250Qed .
251251
252252Lemma closed_setSI (U : set (subspace A)) :
@@ -256,8 +256,8 @@ Proof. by move=> oA; rewrite -setIC closed_setIS. Qed.
256256Lemma closure_subspaceW (U : set T) :
257257 U `<=` A -> closure (U : set (subspace A)) = closure (U : set T) `&` A.
258258Proof .
259- have /closed_subspaceP := ( @closed_closure _ (U : set (subspace A) )).
260- move=> [V] [ clV VAclUA] /[dup] /(@closureS (subspace _)).
259+ have /closed_subspaceP := @closed_closure _ (U : set (subspace A)).
260+ move=> [V clV VAclUA] /[dup] /(@closureS (subspace _)).
261261have /closure_id <- := closed_subspaceT => /setIidr <-; rewrite setIC.
262262move=> UsubA; rewrite eqEsubset; split.
263263 apply: setSI; rewrite closureE; apply: smallest_sub (@subset_closure _ U).
@@ -288,13 +288,13 @@ Lemma clopen_connectedP : connected A <->
288288Proof .
289289split.
290290 move=> + U [/open_subspaceP oU /closed_subspaceP cU] UA U0; apply => //.
291- - case: oU => V [ oV VAUA] ; exists V; rewrite // setIC VAUA.
291+ - case: oU => V oV VAUA; exists V; rewrite // setIC VAUA.
292292 exact/esym/setIidPl.
293- - case: cU => V [ cV VAUA] ; exists V => //; rewrite setIC VAUA.
293+ - case: cU => V cV VAUA; exists V; rewrite // setIC VAUA.
294294 exact/esym/setIidPl.
295295move=> clpnA U Un0 [V oV UVA] [W cW UWA]; apply: clpnA => //; first split.
296- - by apply/open_subspaceP; exists V; rewrite setIC UVA setIAC setIid.
297- - by apply/closed_subspaceP; exists W; rewrite setIC UWA setIAC setIid.
296+ - by apply/open_subspaceP; exists V; rewrite // setIC UVA setIAC setIid.
297+ - by apply/closed_subspaceP; exists W; rewrite // setIC UWA setIAC setIid.
298298- by rewrite UWA; exact: subIsetl.
299299Qed .
300300
@@ -311,8 +311,8 @@ Global Instance subspace_proper_filter {T : topologicalType}
311311 (A : set T) (x : subspace A) :
312312 ProperFilter (nbhs_subspace x) := nbhs_subspace_filter x.
313313
314- Definition from_subspace {T U : Type } (A : set T) (f : T -> U) : subspace A -> U :=
315- f.
314+ Definition from_subspace {T U : Type } (A : set T) (f : T -> U)
315+ : subspace A -> U := f.
316316Arguments from_subspace {T U} A f.
317317
318318Notation "{ 'within' A , 'continuous' f }" :=
@@ -391,21 +391,21 @@ Lemma withinU_continuous {U} A B (f : T -> U) : closed A -> closed B ->
391391 {within A `|` B, continuous f}.
392392Proof .
393393move=> ? ? ctsA ctsB; apply/continuous_closedP => W oW.
394- case/continuous_closedP/(_ _ oW)/closed_subspaceP: ctsA => V1 [? V1W] .
395- case/continuous_closedP/(_ _ oW)/closed_subspaceP: ctsB => V2 [? V2W] .
396- apply/closed_subspaceP; exists ((V1 `&` A) `|` (V2 `&` B)); split .
394+ case/continuous_closedP/(_ _ oW)/closed_subspaceP: ctsA => V1 cV1 V1W.
395+ case/continuous_closedP/(_ _ oW)/closed_subspaceP: ctsB => V2 cV2 V2W.
396+ apply/closed_subspaceP; exists ((V1 `&` A) `|` (V2 `&` B)).
397397 by apply: closedU; exact: closedI.
398- rewrite [RHS]setIUr -V2W -V1W eqEsubset; split=> ? .
399- by case=> [[][]] ? ? [] ?; [left | left | right | right]; split .
400- by case=> [][] ? ?; split=> []; [left; split | left | right; split | right].
398+ rewrite [RHS]setIUr -V2W -V1W eqEsubset; split=> t .
399+ by case=> [[][]] ? ? [] ?; [left | left | right | right].
400+ by case=> [][] ? ?; split=> []; [left | left | right | right].
401401Qed .
402402
403403Lemma subspaceT_continuous {U} A (B : set U) (f : {fun A >-> B}) :
404404 {within A, continuous f} -> continuous (f : subspace A -> subspace B).
405405Proof .
406- move=> /continuousP ctsf; apply/continuousP => O /open_subspaceP [V [ oV VBOB] ].
406+ move=> /continuousP ctsf; apply/continuousP => O /open_subspaceP [V oV VBOB].
407407rewrite -open_subspaceIT; apply/open_subspaceP.
408- case/open_subspaceP: (ctsf _ oV) => W [ oW fVA] ; exists W; split => //.
408+ case/open_subspaceP: (ctsf _ oV) => W oW fVA; exists W => //.
409409rewrite fVA -setIA setIid eqEsubset; split => x [fVx Ax]; split => //.
410410- by have /[!VBOB]-[] : (V `&` B) (f x) by split => //; exact: funS.
411411- by have /[!esym VBOB]-[] : (O `&` B) (f x) by split => //; exact: funS.
@@ -571,7 +571,7 @@ Variables (f : U -> T).
571571Lemma initial_subspace_open (A : set (initial_topology f)) :
572572 open A -> open (f @` A : set (subspace (range f))).
573573Proof .
574- case=> B oB <-; apply/open_subspaceP; exists B; split => //; rewrite eqEsubset.
574+ case=> B oB <-; apply/open_subspaceP; exists B => //; rewrite eqEsubset.
575575split => z [] /[swap]; first by case=> w _ <- ?; split; exists w.
576576by case=> w _ <- [v] ? <-.
577577Qed .
0 commit comments