Gluing Schemes #
Given a family of gluing data of schemes, we may glue them together.
Main definitions #
AlgebraicGeometry.Scheme.GlueData: A structure containing the family of gluing data.AlgebraicGeometry.Scheme.GlueData.glued: The glued scheme. This is defined as the multicoequalizer of∐ V i j ⇉ ∐ U i, so that the general colimit API can be used.AlgebraicGeometry.Scheme.GlueData.ι: The immersionι i : U i ⟶ gluedfor eachi : J.AlgebraicGeometry.Scheme.GlueData.isoCarrier: The isomorphism between the underlying space of the glued scheme and the gluing of the underlying topological spaces.AlgebraicGeometry.Scheme.OpenCover.gluedCover: The glue data associated with an open cover.AlgebraicGeometry.Scheme.OpenCover.fromGlued: The canonical morphism𝒰.gluedCover.glued ⟶ X. This has anis_isoinstance.AlgebraicGeometry.Scheme.OpenCover.glueMorphisms: We may glue a family of compatible morphisms defined on an open cover of a scheme.
Main results #
AlgebraicGeometry.Scheme.GlueData.ι_isOpenImmersion: The mapι i : U i ⟶ gluedis an open immersion for eachi : J.AlgebraicGeometry.Scheme.GlueData.ι_jointly_surjective: The underlying maps ofι i : U i ⟶ gluedare jointly surjective.AlgebraicGeometry.Scheme.GlueData.vPullbackConeIsLimit:V i jis the pullback (intersection) ofU iandU jover the glued space.AlgebraicGeometry.Scheme.GlueData.ι_eq_iff:ι i x = ι j yif and only if they coincide when restricted toV i i.AlgebraicGeometry.Scheme.GlueData.isOpen_iff: A subset of the glued scheme is open iff all its preimages inU iare open.
Implementation details #
All the hard work is done in AlgebraicGeometry/PresheafedSpace/Gluing.lean where we glue
presheafed spaces, sheafed spaces, and locally ringed spaces.
A family of gluing data consists of
- An index type
J - A scheme
U ifor eachi : J. - A scheme
V i jfor eachi j : J. (Note that this isJ × J → Schemerather thanJ → J → Schemeto 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 schemes U i together by identifying V i j with V j i, such
that the U i's are open subschemes of the glued space.
- U : self.J → AlgebraicGeometry.Scheme
- V : self.J × self.J → AlgebraicGeometry.Scheme
- 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) : AlgebraicGeometry.IsOpenImmersion (self.f i j)
Instances For
The glue data of locally ringed spaces associated to a family of glue data of schemes.
Equations
- D.toLocallyRingedSpaceGlueData = { toGlueData := D.mapGlueData AlgebraicGeometry.Scheme.forgetToLocallyRingedSpace, f_open := ⋯ }
Instances For
(Implementation). The glued scheme of a glue data.
This should not be used outside this file. Use AlgebraicGeometry.Scheme.GlueData.glued instead.
Equations
- D.gluedScheme = AlgebraicGeometry.LocallyRingedSpace.IsOpenImmersion.scheme D.toLocallyRingedSpaceGlueData.glued ⋯
Instances For
Equations
- One or more equations did not get rendered due to their size.
The glued scheme of a glued space.
Equations
- D.glued = D.glued
Instances For
The immersion from D.U i into the glued space.
Equations
- D.ι i = D.ι i
Instances For
The gluing as sheafed spaces is isomorphic to the gluing as presheafed spaces.
Equations
- D.isoLocallyRingedSpace = D.gluedIso AlgebraicGeometry.Scheme.forgetToLocallyRingedSpace
Instances For
The pullback cone spanned by V i j ⟶ U i and V i j ⟶ U j.
This is a pullback diagram (vPullbackConeIsLimit).
Equations
- D.vPullbackCone i j = CategoryTheory.Limits.PullbackCone.mk (D.f i j) (CategoryTheory.CategoryStruct.comp (D.t i j) (D.f j i)) ⋯
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
- D.vPullbackConeIsLimit i j = D.vPullbackConeIsLimitOfMap AlgebraicGeometry.Scheme.forgetToLocallyRingedSpace i j (D.toLocallyRingedSpaceGlueData.vPullbackConeIsLimit i j)
Instances For
The underlying topological space of the glued scheme is isomorphic to the gluing of the underlying spaces
Equations
- One or more equations did not get rendered due to their size.
Instances For
An equivalence relation on Σ i, D.U i that holds iff 𝖣 .ι i x = 𝖣 .ι j y.
See AlgebraicGeometry.Scheme.GlueData.ι_eq_iff.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The open cover of the glued space given by the glue data.
Equations
- D.openCover = { J := D.J, obj := D.U, map := D.ι, f := fun (x : ↑↑D.glued.toPresheafedSpace) => ⋯.choose, covers := ⋯, map_prop := ⋯ }
Instances For
(Implementation) the transition maps in the glue data associated with an open cover.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The glue data associated with an open cover.
The canonical isomorphism 𝒰.gluedCover.glued ⟶ X is provided by 𝒰.fromGlued.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The canonical morphism from the gluing of an open cover of X into X.
This is an isomorphism, as witnessed by an IsIso instance.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Alias of AlgebraicGeometry.Scheme.Cover.fromGlued_isOpenEmbedding.
Given an open cover of X, and a morphism 𝒰.obj x ⟶ Y for each open subscheme in the cover,
such that these morphisms are compatible in the intersection (pullback), we may glue the morphisms
together into a morphism X ⟶ Y.
Note:
If X is exactly (defeq to) the gluing of U i, then using Multicoequalizer.desc suffices.
Equations
- One or more equations did not get rendered due to their size.