Open covers of schemes #
This file provides the basic API for open covers of schemes.
Main definition #
AlgebraicGeometry.Scheme.OpenCover
: The type of open covers of a schemeX
, consisting of a family of open immersions intoX
, and for eachx : X
an open immersion (indexed byf x
) that coversx
.AlgebraicGeometry.Scheme.affineCover
:X.affineCover
is a choice of an affine cover ofX
.AlgebraicGeometry.Scheme.AffineOpenCover
: The type of affine open covers of a schemeX
.
An open cover of X
consists of a family of open immersions into X
,
and for each x : X
an open immersion (indexed by f x
) that covers x
.
This is merely a coverage in the Zariski pretopology, and it would be optimal
if we could reuse the existing API about pretopologies, However, the definitions of sieves and
grothendieck topologies uses Prop
s, so that the actual open sets and immersions are hard to
obtain. Also, since such a coverage in the pretopology usually contains a proper class of
immersions, it is quite hard to glue them, reason about finite covers, etc.
- J : Type v
index set of an open cover of a scheme
X
- obj : self.J → AlgebraicGeometry.Scheme
the subschemes of an open cover
- map : (j : self.J) → self.obj j ⟶ X
the embedding of subschemes to
X
- f : ↑↑X.toPresheafedSpace → self.J
given a point of
x : X
,f x
is the index of the subscheme which containsx
the subschemes covers
X
- IsOpen : ∀ (x : self.J), AlgebraicGeometry.IsOpenImmersion (self.map x)
the embedding of subschemes are open immersions
Instances For
the subschemes covers X
the embedding of subschemes are open immersions
Alias of AlgebraicGeometry.Scheme.OpenCover.covers
.
the subschemes covers X
The affine cover of a scheme.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- AlgebraicGeometry.Scheme.instInhabitedOpenCover = { default := X.affineCover }
Given an open cover { Uᵢ }
of X
, and for each Uᵢ
an open cover, we may combine these
open covers to form an open cover of X
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
An isomorphism X ⟶ Y
is an open cover of Y
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
We construct an open cover from another, by providing the needed fields and showing that the provided fields are isomorphic with the original open cover.
Equations
- 𝒰.copy J obj map e₁ e₂✝ e₂ = { J := J, obj := obj, map := map, f := fun (x : ↑↑X.toPresheafedSpace) => e₁.symm (𝒰.f x), covers := ⋯, IsOpen := ⋯ }
Instances For
The pushforward of an open cover along an isomorphism.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Adding an open immersion into an open cover gives another open cover.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Given an open cover on X
, we may pull them back along a morphism W ⟶ X
to obtain
an open cover of W
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The family of morphisms from the pullback cover to the original cover.
Equations
- 𝒰.pullbackHom f i = CategoryTheory.Limits.pullback.snd f (𝒰.map i)
Instances For
Given an open cover on X
, we may pull them back along a morphism f : W ⟶ X
to obtain
an open cover of W
. This is similar to Scheme.OpenCover.pullbackCover
, but here we
take pullback (𝒰.map x) f
instead of pullback f (𝒰.map x)
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Every open cover of a quasi-compact scheme can be refined into a finite subcover.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- AlgebraicGeometry.Scheme.instFintypeJFiniteSubcover 𝒰 = id inferInstance
Given open covers { Uᵢ }
and { Uⱼ }
, we may form the open cover { Uᵢ ∩ Uⱼ }
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
An affine open cover of X
consists of a family of open immersions into X
from
spectra of rings.
- J : Type v
index set of an affine open cover of a scheme
X
- obj : self.J → CommRingCat
the ring associated to a component of an affine open cover
- map : (j : self.J) → AlgebraicGeometry.Spec (self.obj j) ⟶ X
the embedding of subschemes to
X
- f : ↑↑X.toPresheafedSpace → self.J
given a point of
x : X
,f x
is the index of the subscheme which containsx
the subschemes covers
X
- IsOpen : ∀ (x : self.J), AlgebraicGeometry.IsOpenImmersion (self.map x)
the embedding of subschemes are open immersions
Instances For
the subschemes covers X
the embedding of subschemes are open immersions
The open cover associated to an affine open cover.
Equations
- 𝓤.openCover = { J := 𝓤.J, obj := fun (j : 𝓤.J) => AlgebraicGeometry.Spec (𝓤.obj j), map := 𝓤.map, f := 𝓤.f, covers := ⋯, IsOpen := ⋯ }
Instances For
A choice of an affine open cover of a scheme.
Equations
- X.affineOpenCover = { J := X.affineCover.J, obj := fun (j : X.affineCover.J) => ⋯.choose, map := X.affineCover.map, f := X.affineCover.f, covers := ⋯, IsOpen := ⋯ }
Instances For
Given any open cover 𝓤
, this is an affine open cover which refines it.
The morphism in the category of open covers which proves that this is indeed a refinement, see
AlgebraicGeometry.Scheme.OpenCover.fromAffineRefinement
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The pullback of the affine refinement is the pullback of the affine cover.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A morphism between open covers 𝓤 ⟶ 𝓥
indicates that 𝓤
is a refinement of 𝓥
.
Since open covers of schemes are indexed, the definition also involves a map on the
indexing types.
- idx : 𝓤.J → 𝓥.J
The map on indexing types associated to a morphism of open covers.
- app : (j : 𝓤.J) → 𝓤.obj j ⟶ 𝓥.obj (self.idx j)
The morphism between open subsets associated to a morphism of open covers.
- isOpen : ∀ (j : 𝓤.J), AlgebraicGeometry.IsOpenImmersion (self.app j)
- w : ∀ (j : 𝓤.J), CategoryTheory.CategoryStruct.comp (self.app j) (𝓥.map (self.idx j)) = 𝓤.map j
Instances For
The identity morphism in the category of open covers of a scheme.
Equations
- AlgebraicGeometry.Scheme.OpenCover.Hom.id 𝓤 = { idx := fun (j : 𝓤.J) => j, app := fun (x : 𝓤.J) => CategoryTheory.CategoryStruct.id (𝓤.obj x), isOpen := ⋯, w := ⋯ }
Instances For
The composition of two morphisms in the category of open covers of a scheme.
Equations
- f.comp g = { idx := fun (j : 𝓤.J) => g.idx (f.idx j), app := fun (x : 𝓤.J) => CategoryTheory.CategoryStruct.comp (f.app x) (g.app (f.idx x)), isOpen := ⋯, w := ⋯ }
Instances For
Equations
- AlgebraicGeometry.Scheme.OpenCover.category = CategoryTheory.Category.mk ⋯ ⋯ ⋯
Given any open cover 𝓤
, this is an affine open cover which refines it.
Equations
- One or more equations did not get rendered due to their size.
Instances For
If two global sections agree after restriction to each member of an open cover, then they agree globally.
If the restriction of a global section to each member of an open cover is zero, then it is globally zero.
If a global section is nilpotent on each member of a finite open cover, then f
is
nilpotent.
The basic open sets form an affine open cover of Spec R
.
Equations
- One or more equations did not get rendered due to their size.
Instances For
We may bind the basic open sets of an open affine cover to form an affine cover that is also a basis.
Equations
- X.affineBasisCover = X.affineCover.bind fun (x : X.affineCover.J) => AlgebraicGeometry.Scheme.affineBasisCoverOfAffine ⋯.choose
Instances For
The coordinate ring of a component in the affine_basis_cover
.
Equations
- X.affineBasisCoverRing i = CommRingCat.of (Localization.Away i.snd)