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 ⟶ glued
for 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_iso
instance.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 ⟶ glued
is an open immersion for eachi : J
.AlgebraicGeometry.Scheme.GlueData.ι_jointly_surjective
: The underlying maps ofι i : U i ⟶ glued
are jointly surjective.AlgebraicGeometry.Scheme.GlueData.vPullbackConeIsLimit
:V i j
is the pullback (intersection) ofU i
andU j
over the glued space.AlgebraicGeometry.Scheme.GlueData.ι_eq_iff
:ι i x = ι j y
if 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 i
are 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 i
for eachi : J
. - A scheme
V i j
for eachi j : J
. (Note that this isJ × J → Scheme
rather thanJ → J → Scheme
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 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.
- J : Type u_1
- U : self.J → AlgebraicGeometry.Scheme
- V : self.J × self.J → AlgebraicGeometry.Scheme
- f : (i j : self.J) → self.toGlueData.V (i, j) ⟶ self.toGlueData.U i
- f_mono : ∀ (i j : self.J), CategoryTheory.Mono (self.toGlueData.f i j)
- f_hasPullback : ∀ (i j k : self.J), CategoryTheory.Limits.HasPullback (self.toGlueData.f i j) (self.toGlueData.f i k)
- f_id : ∀ (i : self.J), CategoryTheory.IsIso (self.toGlueData.f i i)
- t : (i j : self.J) → self.toGlueData.V (i, j) ⟶ self.toGlueData.V (j, i)
- t_id : ∀ (i : self.J), self.toGlueData.t i i = CategoryTheory.CategoryStruct.id (self.toGlueData.V (i, i))
- t' : (i j k : self.J) → CategoryTheory.Limits.pullback (self.toGlueData.f i j) (self.toGlueData.f i k) ⟶ CategoryTheory.Limits.pullback (self.toGlueData.f j k) (self.toGlueData.f j i)
- t_fac : ∀ (i j k : self.J), CategoryTheory.CategoryStruct.comp (self.toGlueData.t' i j k) CategoryTheory.Limits.pullback.snd = CategoryTheory.CategoryStruct.comp CategoryTheory.Limits.pullback.fst (self.toGlueData.t i j)
- cocycle : ∀ (i j k : self.J), CategoryTheory.CategoryStruct.comp (self.toGlueData.t' i j k) (CategoryTheory.CategoryStruct.comp (self.toGlueData.t' j k i) (self.toGlueData.t' k i j)) = CategoryTheory.CategoryStruct.id (CategoryTheory.Limits.pullback (self.toGlueData.f i j) (self.toGlueData.f i k))
- f_open : ∀ (i j : self.J), AlgebraicGeometry.IsOpenImmersion (self.toGlueData.f i j)
Instances For
The glue data of locally ringed spaces spaces associated to a family of glue data of schemes.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.
(Implementation). The glued scheme of a glue data.
This should not be used outside this file. Use AlgebraicGeometry.Scheme.GlueData.glued
instead.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.
The glued scheme of a glued space.
Equations
Instances For
The immersion from D.U i
into the glued space.
Equations
- AlgebraicGeometry.Scheme.GlueData.ι D i = CategoryTheory.GlueData.ι D.toGlueData i
Instances For
The gluing as sheafed spaces is isomorphic to the gluing as presheafed spaces.
Equations
Instances For
Equations
- (_ : AlgebraicGeometry.IsOpenImmersion (CategoryTheory.GlueData.ι D.toGlueData i)) = (_ : AlgebraicGeometry.IsOpenImmersion (CategoryTheory.GlueData.ι D.toGlueData i))
The pullback cone spanned by V i j ⟶ U i
and V i j ⟶ U j
.
This is a pullback diagram (vPullbackConeIsLimit
).
Equations
- One or more equations did not get rendered due to their size.
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
- One or more equations did not get rendered due to their size.
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
- One or more equations did not get rendered due to their size.
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
Equations
- One or more equations did not get rendered due to their size.
Equations
- (_ : CategoryTheory.Epi (AlgebraicGeometry.Scheme.OpenCover.fromGlued 𝒰).val.base) = (_ : CategoryTheory.Epi (AlgebraicGeometry.Scheme.OpenCover.fromGlued 𝒰).val.base)
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.