Gluing Structured spaces #
Given a family of gluing data of structured spaces (presheafed spaces, sheafed spaces, or locally ringed spaces), we may glue them together.
The construction should be "sealed" and considered as a black box, while only using the API provided.
Main definitions #
AlgebraicGeometry.PresheafedSpace.GlueData: A structure containing the family of gluing data.CategoryTheory.GlueData.glued: The glued presheafed 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 : J.
Main results #
AlgebraicGeometry.PresheafedSpace.GlueData.ιIsOpenImmersion: The mapι i : U i ⟶ gluedis an open immersion for eachi : J.AlgebraicGeometry.PresheafedSpace.GlueData.ι_jointly_surjective: The underlying maps ofι i : U i ⟶ gluedare jointly surjective.AlgebraicGeometry.PresheafedSpace.GlueData.vPullbackConeIsLimit:V i jis the pullback (intersection) ofU iandU jover the glued space.
Analogous results are also provided for SheafedSpace and LocallyRingedSpace.
Implementation details #
Almost the whole file is dedicated to showing that ι i is an open immersion. The fact that
this is an open embedding of topological spaces follows from Mathlib/Topology/Gluing.lean, and it
remains to construct Γ(𝒪_{U_i}, U) ⟶ Γ(𝒪_X, ι i '' U) for each U ⊆ U i.
Since Γ(𝒪_X, ι i '' U) is the limit of diagram_over_open, the components of the structure
sheafs of the spaces in the gluing diagram, we need to construct a map
ιInvApp_π_app : Γ(𝒪_{U_i}, U) ⟶ Γ(𝒪_V, U_V) for each V in the gluing diagram.
We will refer to
in the following doc strings.
The X is the glued space, and the dotted arrow is a partial inverse guaranteed by the fact
that it is an open immersion. The map Γ(𝒪_{U_i}, U) ⟶ Γ(𝒪_{U_j}, _) is given by the composition
of the red arrows, and the map Γ(𝒪_{U_i}, U) ⟶ Γ(𝒪_{V_{jk}}, _) is given by the composition of the
blue arrows. To lift this into a map from Γ(𝒪_X, ι i '' U), we also need to show that these
commute with the maps in the diagram (the green arrows), which is just a lengthy diagram-chasing.
A family of gluing data consists of
- An index type
J - A presheafed space
U ifor eachi : J. - A presheafed space
V i jfor eachi j : J. (Note that this isJ × J → PresheafedSpace Crather thanJ → J → PresheafedSpace Cto connect to the limits library easier.) - An open immersion
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.t' i j k ≫ t' j k i ≫ t' k i j = 𝟙 _.
We can then glue the 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.
- U : self.J → AlgebraicGeometry.PresheafedSpace C
- V : self.J × self.J → AlgebraicGeometry.PresheafedSpace C
- t' (i j k : self.J) : Limits.pullback (self.f i j) (self.f i k) ⟶ Limits.pullback (self.f j k) (self.f j i)
- t_fac (i j k : self.J) : CategoryStruct.comp (self.t' i j k) (Limits.pullback.snd (self.f j k) (self.f j i)) = CategoryStruct.comp (Limits.pullback.fst (self.f i j) (self.f i k)) (self.t i j)
- cocycle (i j k : self.J) : CategoryStruct.comp (self.t' i j k) (CategoryStruct.comp (self.t' j k i) (self.t' k i j)) = CategoryStruct.id (Limits.pullback (self.f i j) (self.f i k))
- f_open (i j : self.J) : IsOpenImmersion (self.f i j)
Instances For
The glue data of topological spaces associated to a family of glue data of PresheafedSpaces.
Equations
- D.toTopGlueData = { toGlueData := D.mapGlueData (AlgebraicGeometry.PresheafedSpace.forget C), f_open := ⋯ }
Instances For
The red and the blue arrows in
commute.
We can prove the eq along with the lemma. Thus this is bundled together here, and the
lemma itself is separated below.
The red and the blue arrows in
commute.
(Implementation). The map Γ(𝒪_{U_i}, U) ⟶ Γ(𝒪_{U_j}, 𝖣.ι j ⁻¹' (𝖣.ι i '' U))
Equations
- One or more equations did not get rendered due to their size.
Instances For
The red and the blue arrows in
commute.
(Implementation) Given an open subset of one of the spaces U ⊆ Uᵢ, the sheaf component of
the image ι '' U in the glued space is the limit of this diagram.
Equations
Instances For
(Implementation)
The projection from the limit of diagram_over_open to a component of D.U j.
Equations
Instances For
(Implementation) We construct the map Γ(𝒪_{U_i}, U) ⟶ Γ(𝒪_V, U_V) for each V in the gluing
diagram. We will lift these maps into ιInvApp.
Equations
- One or more equations did not get rendered due to their size.
Instances For
(Implementation) The natural map Γ(𝒪_{U_i}, U) ⟶ Γ(𝒪_X, 𝖣.ι i '' U).
This forms the inverse of (𝖣.ι i).c.app (op U).
Equations
- One or more equations did not get rendered due to their size.
Instances For
ιInvApp is the left inverse of D.ι i on U.
The eqToHom given by ιInvApp_π.
Equations
- D.ιInvAppπEqMap U = (D.U i).presheaf.map (CategoryTheory.eqToIso ⋯).inv
Instances For
ιInvApp is the right inverse of D.ι i on U.
ιInvApp is the inverse of D.ι i on U.
The following diagram is a pullback, i.e. Vᵢⱼ is the intersection of Uᵢ and Uⱼ in X.
Vᵢⱼ ⟶ Uᵢ | | ↓ ↓ Uⱼ ⟶ X
Equations
- One or more equations did not get rendered due to their size.
Instances For
A family of gluing data consists of
- An index type
J - A sheafed space
U ifor eachi : J. - A sheafed space
V i jfor eachi j : J. (Note that this isJ × J → SheafedSpace Crather thanJ → J → SheafedSpace Cto connect to the limits library easier.) - An open immersion
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.t' i j k ≫ t' j k i ≫ t' k i j = 𝟙 _.
We can then glue the 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.
- U : self.J → AlgebraicGeometry.SheafedSpace C
- V : self.J × self.J → AlgebraicGeometry.SheafedSpace C
- t' (i j k : self.J) : Limits.pullback (self.f i j) (self.f i k) ⟶ Limits.pullback (self.f j k) (self.f j i)
- t_fac (i j k : self.J) : CategoryStruct.comp (self.t' i j k) (Limits.pullback.snd (self.f j k) (self.f j i)) = CategoryStruct.comp (Limits.pullback.fst (self.f i j) (self.f i k)) (self.t i j)
- cocycle (i j k : self.J) : CategoryStruct.comp (self.t' i j k) (CategoryStruct.comp (self.t' j k i) (self.t' k i j)) = CategoryStruct.id (Limits.pullback (self.f i j) (self.f i k))
- f_open (i j : self.J) : IsOpenImmersion (self.f i j)
Instances For
The glue data of presheafed spaces associated to a family of glue data of sheafed spaces.
Equations
- D.toPresheafedSpaceGlueData = { toGlueData := D.mapGlueData AlgebraicGeometry.SheafedSpace.forgetToPresheafedSpace, f_open := ⋯ }
Instances For
The gluing as sheafed spaces is isomorphic to the gluing as presheafed spaces.
Instances For
The following diagram is a pullback, i.e. Vᵢⱼ is the intersection of Uᵢ and Uⱼ in X.
Vᵢⱼ ⟶ Uᵢ | | ↓ ↓ Uⱼ ⟶ X
Equations
Instances For
A family of gluing data consists of
- An index type
J - A locally ringed space
U ifor eachi : J. - A locally ringed space
V i jfor eachi j : J. (Note that this isJ × J → LocallyRingedSpacerather thanJ → J → LocallyRingedSpaceto connect to the limits library easier.) - An open immersion
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.t' i j k ≫ t' j k i ≫ t' k i j = 𝟙 _.
We can then glue the 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.
- U : self.J → AlgebraicGeometry.LocallyRingedSpace
- V : self.J × self.J → AlgebraicGeometry.LocallyRingedSpace
- t' (i j k : self.J) : Limits.pullback (self.f i j) (self.f i k) ⟶ Limits.pullback (self.f j k) (self.f j i)
- t_fac (i j k : self.J) : CategoryStruct.comp (self.t' i j k) (Limits.pullback.snd (self.f j k) (self.f j i)) = CategoryStruct.comp (Limits.pullback.fst (self.f i j) (self.f i k)) (self.t i j)
- cocycle (i j k : self.J) : CategoryStruct.comp (self.t' i j k) (CategoryStruct.comp (self.t' j k i) (self.t' k i j)) = CategoryStruct.id (Limits.pullback (self.f i j) (self.f i k))
- f_open (i j : self.J) : IsOpenImmersion (self.f i j)
Instances For
The glue data of ringed spaces associated to a family of glue data of locally ringed spaces.
Equations
- D.toSheafedSpaceGlueData = { toGlueData := D.mapGlueData AlgebraicGeometry.LocallyRingedSpace.forgetToSheafedSpace, f_open := ⋯ }
Instances For
The gluing as locally ringed spaces is isomorphic to the gluing as ringed spaces.
Instances For
The following diagram is a pullback, i.e. Vᵢⱼ is the intersection of Uᵢ and Uⱼ in X.
Vᵢⱼ ⟶ Uᵢ | | ↓ ↓ Uⱼ ⟶ X