@@ -117,12 +117,12 @@ Require Import mathcomp_extra reals signed.
117117(* predicates on natural numbers that are *)
118118(* eventually true. *)
119119(* separates_points_from_closed f == For a closed set U and point x outside *)
120- (* some member of the family `f` sends *)
121- (* f_i(x) outside (closure (f_i@` U)). *)
122- (* used together with ` join_product` *)
123- (* join_product f == The function (x i => f i x). When the *)
120+ (* some member of the family f sends *)
121+ (* f_i(x) outside (closure (f_i @` U)). *)
122+ (* Used together with join_product. *)
123+ (* join_product f == The function (x => f ^~ x). When the *)
124124(* family f separates points from closed *)
125- (* sets, join_product is an embedding *)
125+ (* sets, join_product is an embedding. *)
126126(* *)
127127(* * Near notations and tactics: *)
128128(* --> The purpose of the near notations and tactics is to make the *)
@@ -3213,7 +3213,7 @@ Qed.
32133213Definition hausdorff_accessible : hausdorff_space T -> accessible_space.
32143214Proof .
32153215rewrite open_hausdorff => hsdfT => x y /hsdfT [[U V] [xU yV]] [/= ? ? /eqP].
3216- rewrite setIC => /disjoints_subset VUc; exists U; repeat split => //.
3216+ rewrite setIC => /disjoints_subset VUc; exists U; repeat split => //.
32173217by rewrite inE; apply: VUc; rewrite -inE.
32183218Qed .
32193219
@@ -6542,21 +6542,20 @@ Qed.
65426542End SubspaceWeak.
65436543
65446544Definition separates_points_from_closed {I : Type } {T : topologicalType}
6545- {U_ : I -> topologicalType} (f_ : forall i, ( T -> U_ i) ) :=
6545+ {U_ : I -> topologicalType} (f_ : forall i, T -> U_ i) :=
65466546 forall (U : set T) x,
65476547 closed U -> ~ U x -> exists i, ~ (closure (f_ i @` U)) (f_ i x).
65486548
6549- (* A handy technique for emebdding a space T into a product. The key interface
6550- is 'separates_points_from_closed', which guarantees that the topologies
6549+ (* A handy technique for embedding a space T into a product. The key interface
6550+ is 'separates_points_from_closed', which guarantees that the topologies
65516551 - T's native topology
65526552 - sup (weak f_i) - the sup of all the weak topologies of f_i
65536553 - weak (x => (f_1 x, f_2 x,...)) - the weak topology from the product space
65546554 are equivalent (the last equivalence seems to require accessible_space).
65556555 *)
65566556Section product_embeddings.
6557- Context {I : choiceType} {T : topologicalType}.
6558- Context {U_ : I -> topologicalType}.
6559- Variable (f_ : forall i, (T -> U_ i)).
6557+ Context {I : choiceType} {T : topologicalType} {U_ : I -> topologicalType}.
6558+ Variable (f_ : forall i, T -> U_ i).
65606559
65616560Hypothesis sepf : separates_points_from_closed f_.
65626561Hypothesis ctsf : forall i, continuous (f_ i).
@@ -6576,7 +6575,7 @@ move=> FF; split.
65766575move/cvg_sup => wiFx U; rewrite /= nbhs_simpl nbhsE => [[B [[oB ?]]]].
65776576move/filterS; apply; have [//|i nclfix] := @sepf _ x (open_closedC oB).
65786577apply: (wiFx i); have /= -> := @nbhsE (weak_topologicalType (f_ i)) x.
6579- exists (f_ i @^-1` (~` closure [set f_ i x | x in ~` B])); repeat split => // .
6578+ exists (f_ i @^-1` (~` closure [set f_ i x | x in ~` B])); split; [split=>//|] .
65806579 apply: open_comp; last by rewrite ?openC; last apply: closed_closure.
65816580 by move=> + _; exact: weak_continuous.
65826581rewrite closureC preimage_bigcup => z [V [oV]] VnB => /VnB.
@@ -6596,7 +6595,7 @@ rewrite predeqE => A; rewrite ?openE /interior.
65966595by split => + z => /(_ z); rewrite weak_sep_nbhsE.
65976596Qed .
65986597
6599- Definition join_product (x : T) : PU := fun i => f_ i x.
6598+ Definition join_product (x : T) : PU := f_ ^~ x.
66006599
66016600Lemma join_product_continuous : continuous join_product.
66026601Proof .
@@ -6610,21 +6609,22 @@ apply: open_comp => // + _; rewrite /cvg_to => x U.
66106609by rewrite nbhs_simpl /= -weak_sep_nbhsE; move: x U; exact: ctsf.
66116610Qed .
66126611
6613- Lemma join_product_open : forall (A : set T), open A ->
6614- open ((join_product @` A) : set (subspace (join_product @` setT ))).
6612+ Lemma join_product_open (A : set T) : open A ->
6613+ open ((join_product @` A) : set (subspace (range join_product ))).
66156614Proof .
6616- move=> A oA; rewrite openE => y /= [x Ax] jxy.
6615+ move=> oA; rewrite openE => y /= [x Ax] jxy.
66176616have [// | i nAfiy] := @sepf (~` A) x (open_closedC oA).
66186617pose B := prod_topo_apply i @^-1` (~` closure (f_ i @` ~` A)).
6619- apply: (@filterS _ _ _ (( join_product @` setT) ` &` B)).
6618+ apply: (@filterS _ _ _ (range join_product ` &` B)).
66206619 move=> z [[w ?]] wzE Bz; exists w => //.
66216620 move: Bz; rewrite /B -wzE closureC; case=> K [oK KsubA] /KsubA.
66226621 have -> : prod_topo_apply i (join_product w) = f_ i w by [].
66236622 by move=> /exists2P/forallNP/(_ w)/not_andP [] // /contrapT.
66246623apply: open_nbhs_nbhs; split; last by rewrite -jxy.
6625- apply: openI; first exact: open_subspaceT; apply: open_subspaceW.
6626- apply: open_comp; first by move=> + _; exact: prod_topo_apply_continuous.
6627- by exact/closed_openC/closed_closure.
6624+ apply: openI; first exact: open_subspaceT.
6625+ apply: open_subspaceW; apply: open_comp.
6626+ by move=> + _; exact: prod_topo_apply_continuous.
6627+ exact/closed_openC/closed_closure.
66286628Qed .
66296629
66306630Lemma join_product_inj : accessible_space T -> set_inj [set: T] join_product.
0 commit comments