Gluing Topological spaces #
Given a family of gluing data (see Mathlib/CategoryTheory/GlueData.lean), we can then glue them
together.
The construction should be "sealed" and considered as a black box, while only using the API provided.
Main definitions #
TopCat.GlueData: A structure containing the family of gluing data.CategoryTheory.GlueData.glued: The glued topological space. This is defined as the multicoequalizer of∐ V i j ⇉ ∐ U i, so that the general colimit API can be used.CategoryTheory.GlueData.ι: The immersionι i : U i ⟶ gluedfor eachi : ι.TopCat.GlueData.Rel: A relation onΣ i, D.U idefined by⟨i, x⟩ ~ ⟨j, y⟩iff⟨i, x⟩ = ⟨j, y⟩ort i j x = y. SeeTopCat.GlueData.ι_eq_iff_rel.TopCat.GlueData.mk: A constructor ofGlueDatawhose conditions are stated in terms of elements rather than subobjects and pullbacks.TopCat.GlueData.ofOpenSubsets: Given a family of open sets, we may glue them into a new topological space. This new space embeds into the original space, and is homeomorphic to it if the given family is an open cover (TopCat.GlueData.openCoverGlueHomeo).
Main results #
TopCat.GlueData.isOpen_iff: A set ingluedis open iff its preimage along eachι iis open.TopCat.GlueData.ι_jointly_surjective: Theι is are jointly surjective.TopCat.GlueData.rel_equiv:Relis an equivalence relation.TopCat.GlueData.ι_eq_iff_rel:ι i x = ι j y ↔ ⟨i, x⟩ ~ ⟨j, y⟩.TopCat.GlueData.image_inter: The intersection of the images ofU iandU jingluedisV i j.TopCat.GlueData.preimage_range: The preimage of the image ofU iinU jisV i j.TopCat.GlueData.preimage_image_eq_image: The preimage of the image of someU ⊆ U iis given by XXX.TopCat.GlueData.ι_openEmbedding: Each of theι is are open embeddings.
A family of gluing data consists of
- An index type
J - An object
U ifor eachi : J. - An object
V i jfor eachi j : J. (Note that this isJ × J → TopCatrather thanJ → J → TopCatto connect to the limits library easier.) - An open embedding
f i j : V i j ⟶ U ifor eachi j : ι. - A transition map
t i j : V i j ⟶ V j ifor eachi j : ι. such that f i iis an isomorphism.t i iis the identity.V i j ×[U i] V i k ⟶ V i j ⟶ V j ifactors throughV j k ×[U j] V j i ⟶ V j ivia somet' : V i j ×[U i] V i k ⟶ V j k ×[U j] V j i. (This merely means thatV i j ∩ V i k ⊆ t i j ⁻¹' (V j i ∩ V j k).)t' i j k ≫ t' j k i ≫ t' k i j = 𝟙 _.
We can then glue the topological spaces U i together by identifying V i j with V j i, such
that the U i's are open subspaces of the glued space.
Most of the times it would be easier to use the constructor TopCat.GlueData.mk' where the
conditions are stated in a less categorical way.
- J : Type u_1
- U : self.J → TopCat
- f : (i j : self.J) → self.V (i, j) ⟶ self.U i
- f_mono : ∀ (i j : self.J), CategoryTheory.Mono (self.f i j)
- f_hasPullback : ∀ (i j k : self.J), CategoryTheory.Limits.HasPullback (self.f i j) (self.f i k)
- f_id : ∀ (i : self.J), CategoryTheory.IsIso (self.f i i)
- t : (i j : self.J) → self.V (i, j) ⟶ self.V (j, i)
- t_id : ∀ (i : self.J), self.t i i = CategoryTheory.CategoryStruct.id (self.V (i, i))
- t' : (i j k : self.J) → CategoryTheory.Limits.pullback (self.f i j) (self.f i k) ⟶ CategoryTheory.Limits.pullback (self.f j k) (self.f j i)
- t_fac : ∀ (i j k : self.J), CategoryTheory.CategoryStruct.comp (self.t' i j k) CategoryTheory.Limits.pullback.snd = CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.pullback.fst (self.t i j)
- cocycle : ∀ (i j k : self.J), CategoryTheory.CategoryStruct.comp (self.t' i j k) (CategoryTheory.CategoryStruct.comp (self.t' j k i) (self.t' k i j)) = CategoryTheory.CategoryStruct.id (CategoryTheory.Limits.pullback (self.f i j) (self.f i k))
- f_open : ∀ (i j : self.J), OpenEmbedding ⇑(self.f i j)
Instances For
An equivalence relation on Σ i, D.U i that holds iff 𝖣 .ι i x = 𝖣 .ι j y.
See TopCat.GlueData.ι_eq_iff_rel.
Equations
Instances For
Equations
- ⋯ = ⋯
A family of gluing data consists of
- An index type
J - A bundled topological space
U ifor eachi : J. - An open set
V i j ⊆ U ifor eachi j : J. - A transition map
t i j : V i j ⟶ V j ifor eachi j : ι. such that V i i = U i.t i iis the identity.- For each
x ∈ V i j ∩ V i k,t i j x ∈ V j k. t j k (t i j x) = t i k x.
We can then glue the topological spaces U i together by identifying V i j with V j i.
- J : Type u
- U : self.J → TopCat
- V : (i : self.J) → self.J → TopologicalSpace.Opens ↑(self.U i)
- t : (i j : self.J) → (TopologicalSpace.Opens.toTopCat (self.U i)).obj (self.V i j) ⟶ (TopologicalSpace.Opens.toTopCat (self.U j)).obj (self.V j i)
- t_id : ∀ (i : self.J), ⇑(self.t i i) = id
Instances For
Equations
- ⋯ = ⋯
(Implementation) the restricted transition map to be fed into TopCat.GlueData.
Equations
- One or more equations did not get rendered due to their size.
Instances For
This is a constructor of TopCat.GlueData whose arguments are in terms of elements and
intersections rather than subobjects and pullbacks. Please refer to TopCat.GlueData.MkCore for
details.
Equations
- One or more equations did not get rendered due to their size.
Instances For
We may construct a glue data from a family of open sets.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The canonical map from the glue of a family of open subsets α into α.
This map is an open embedding (fromOpenSubsetsGlue_openEmbedding),
and its range is ⋃ i, (U i : Set α) (range_fromOpenSubsetsGlue).
Equations
- One or more equations did not get rendered due to their size.
Instances For
The gluing of an open cover is homeomomorphic to the original space.