Gluing Structured spaces #
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.
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 #
algebraic_geometry.PresheafedSpace.glue_data
: A structure containing the family of gluing data.category_theory.glue_data.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.category_theory.glue_data.ι
: The immersionι i : U i ⟶ glued
for eachi : J
.
Main results #
algebraic_geometry.PresheafedSpace.glue_data.ι_is_open_immersion
: The mapι i : U i ⟶ glued
is an open immersion for eachi : J
.algebraic_geometry.PresheafedSpace.glue_data.ι_jointly_surjective
: The underlying maps ofι i : U i ⟶ glued
are jointly surjective.algebraic_geometry.PresheafedSpace.glue_data.V_pullback_cone_is_limit
:V i j
is the pullback (intersection) ofU i
andU j
over the glued space.
Analogous results are also provided for SheafedSpace
and LocallyRingedSpace
.
Implementation details #
Almost the whole file is dedicated to showing tht ι i
is an open immersion. The fact that
this is an open embedding of topological spaces follows from 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 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
ι_inv_app_π_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.
- to_glue_data : category_theory.glue_data (algebraic_geometry.PresheafedSpace C)
- f_open : ∀ (i j : self.to_glue_data.J), algebraic_geometry.PresheafedSpace.is_open_immersion (self.to_glue_data.f i j)
A family of gluing data consists of
- An index type
J
- A presheafed space
U i
for eachi : J
. - A presheafed space
V i j
for eachi j : J
. (Note that this isJ × J → PresheafedSpace C
rather thanJ → J → PresheafedSpace C
to connect to the limits library easier.) - An open immersion
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
.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.
Instances for algebraic_geometry.PresheafedSpace.glue_data
- algebraic_geometry.PresheafedSpace.glue_data.has_sizeof_inst
The glue data of topological spaces associated to a family of glue data of PresheafedSpaces.
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
- D.opens_image_preimage_map i j U = (D.to_glue_data.f i j).c.app (opposite.op U) ≫ (D.to_glue_data.t j i).c.app ((topological_space.opens.map (D.to_glue_data.f i j).base).op.obj (opposite.op U)) ≫ _.inv_app (opposite.unop ((topological_space.opens.map (D.to_glue_data.t j i).base).op.obj ((topological_space.opens.map (D.to_glue_data.f i j).base).op.obj (opposite.op U)))) ≫ (D.to_glue_data.U j).presheaf.map (category_theory.eq_to_hom _).op
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.
(Implementation)
The projection from the limit of diagram_over_open
to a component of D.U j
.
(Implementation) We construct the map Γ(𝒪_{U_i}, U) ⟶ Γ(𝒪_V, U_V)
for each V
in the gluing
diagram. We will lift these maps into ι_inv_app
.
Equations
- D.ι_inv_app_π_app U j = j.cases_on (λ (j : D.to_glue_data.diagram.L), prod.cases_on j (λ (j k : D.to_glue_data.J), D.opens_image_preimage_map i j U ≫ (D.to_glue_data.f j k).c.app (opposite.op ((topological_space.opens.map (D.to_glue_data.ι j).base).obj (_.functor.obj U))) ≫ (D.to_glue_data.V (j, k)).presheaf.map (category_theory.eq_to_hom _))) (λ (j : D.to_glue_data.diagram.R), D.opens_image_preimage_map i j U)
(Implementation) The natural map Γ(𝒪_{U_i}, U) ⟶ Γ(𝒪_X, 𝖣.ι i '' U)
.
This forms the inverse of (𝖣.ι i).c.app (op U)
.
Equations
- D.ι_inv_app U = category_theory.limits.limit.lift (D.diagram_over_open U) {X := (D.to_glue_data.U i).presheaf.obj (opposite.op U), π := {app := λ (j : (category_theory.limits.walking_multispan D.to_glue_data.diagram.fst_from D.to_glue_data.diagram.snd_from)ᵒᵖ), D.ι_inv_app_π_app U (opposite.unop j), naturality' := _}}
ι_inv_app
is the left inverse of D.ι i
on U
.
The eq_to_hom
given by ι_inv_app_π
.
ι_inv_app
is the right inverse of D.ι i
on U
.
ι_inv_app
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
- D.V_pullback_cone_is_limit i j = (D.to_glue_data.V_pullback_cone i j).is_limit_aux' (λ (s : category_theory.limits.pullback_cone (D.to_glue_data.ι i) (D.to_glue_data.ι j)), ⟨algebraic_geometry.PresheafedSpace.is_open_immersion.lift (D.to_glue_data.f i j) s.fst _, _⟩)
- to_glue_data : category_theory.glue_data (algebraic_geometry.SheafedSpace C)
- f_open : ∀ (i j : self.to_glue_data.J), algebraic_geometry.SheafedSpace.is_open_immersion (self.to_glue_data.f i j)
A family of gluing data consists of
- An index type
J
- A sheafed space
U i
for eachi : J
. - A sheafed space
V i j
for eachi j : J
. (Note that this isJ × J → SheafedSpace C
rather thanJ → J → SheafedSpace C
to connect to the limits library easier.) - An open immersion
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
.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.
Instances for algebraic_geometry.SheafedSpace.glue_data
- algebraic_geometry.SheafedSpace.glue_data.has_sizeof_inst
The glue data of presheafed spaces associated to a family of glue data of sheafed spaces.
The gluing as sheafed spaces is isomorphic to the gluing as presheafed spaces.
The following diagram is a pullback, i.e. Vᵢⱼ
is the intersection of Uᵢ
and Uⱼ
in X
.
Vᵢⱼ ⟶ Uᵢ | | ↓ ↓ Uⱼ ⟶ X
- to_glue_data : category_theory.glue_data algebraic_geometry.LocallyRingedSpace
- f_open : ∀ (i j : self.to_glue_data.J), algebraic_geometry.LocallyRingedSpace.is_open_immersion (self.to_glue_data.f i j)
A family of gluing data consists of
- An index type
J
- A locally ringed space
U i
for eachi : J
. - A locally ringed space
V i j
for eachi j : J
. (Note that this isJ × J → LocallyRingedSpace
rather thanJ → J → LocallyRingedSpace
to connect to the limits library easier.) - An open immersion
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
.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.
Instances for algebraic_geometry.LocallyRingedSpace.glue_data
- algebraic_geometry.LocallyRingedSpace.glue_data.has_sizeof_inst
The glue data of ringed spaces associated to a family of glue data of locally ringed spaces.
The gluing as locally ringed spaces is isomorphic to the gluing as ringed spaces.
The following diagram is a pullback, i.e. Vᵢⱼ
is the intersection of Uᵢ
and Uⱼ
in X
.
Vᵢⱼ ⟶ Uᵢ | | ↓ ↓ Uⱼ ⟶ X