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 ⟶ glued
for eachi : ι
.TopCat.GlueData.Rel
: A relation onΣ i, D.U i
defined 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 ofGlueData
whose 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 inglued
is open iff its preimage along eachι i
is open.TopCat.GlueData.ι_jointly_surjective
: Theι i
s are jointly surjective.TopCat.GlueData.rel_equiv
:Rel
is 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 i
andU j
inglued
isV i j
.TopCat.GlueData.preimage_range
: The preimage of the image ofU i
inU j
isV i j
.TopCat.GlueData.preimage_image_eq_image
: The preimage of the image of someU ⊆ U i
is given by XXX.TopCat.GlueData.ι_openEmbedding
: Each of theι i
s are open embeddings.
A family of gluing data consists of
- An index type
J
- An object
U i
for eachi : J
. - An object
V i j
for eachi j : J
. (Note that this isJ × J → TopCat
rather thanJ → J → TopCat
to connect to the limits library easier.) - An open embedding
f i j : V i j ⟶ U i
for eachi j : ι
. - A transition map
t i j : V i j ⟶ V j i
for eachi j : ι
. such that f i i
is an isomorphism.t i i
is the identity.V i j ×[U i] V i k ⟶ V i j ⟶ V j i
factors throughV j k ×[U j] V j i ⟶ V j i
via 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 (self.f j k) (self.f j i)) = CategoryTheory.CategoryStruct.comp (CategoryTheory.Limits.pullback.fst (self.f i j) (self.f i k)) (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 i
for eachi : J
. - An open set
V i j ⊆ U i
for eachi j : J
. - A transition map
t i j : V i j ⟶ V j i
for eachi j : ι
. such that V i i = U i
.t i i
is 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.