26.2 Locally ringed spaces to 26.20 Valuative criterion for…
Section26.2 Locally ringed spaces#
Section 26.2 of the Stacks Project, Tag 01HA. 2 tags here are carried by 6 registered declarations, quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 01HB, a definition
Tag 01HB in the Stacks Project.
Declarations registered for the tag:
AlgebraicGeometry.LocallyRingedSpaceregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch26.lean, line 106 (StacksFrontier): “Part 1: a locally ringed space is a topological space with a sheaf of rings all of whose stalks are local rings.”. References: EGA 0 (5.5.1); EGA I (1.8.2).AlgebraicGeometry.LocallyRingedSpace.isLocalRingregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch26.lean, line 109 (StacksFrontier): “Part 2: the local ring O_{X,x} of X at x is the stalk, which is local (the maximal ideal m_x isIsLocalRing.maximalIdealof the stalk).”.AlgebraicGeometry.LocallyRingedSpace.residueFieldregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch26.lean, line 113 (StacksFrontier): “Part 2: the residue field kappa(x) = O_{X,x}/m_x of X at x.”. References: EGA 0 (5.5.1); SGA 1 I (7.5), “more general”.AlgebraicGeometry.LocallyRingedSpace.Homregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch26.lean, line 116 (StacksFrontier): “Part 3: a morphism of locally ringed spaces is a morphism of ringed spaces whose stalk maps are local ring maps.”. References: EGA I (1.8.2); EGA I (2.2.1), “more general”; EGA I (10.4.5), “special case”.
Tag 01HC, a lemma
Tag 01HC in the Stacks Project.
Declarations registered for the tag:
AlgebraicGeometry.LocallyRingedSpace.isoOfSheafedSpaceIsoregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch26.lean, line 119 (StacksFrontier): “An isomorphism of ringed spaces between locally ringed spaces is an isomorphism of locally ringed spaces.”.AlgebraicGeometry.LocallyRingedSpace.homOfSheafedSpaceHomOfIsIsoregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch26.lean, line 129 (StacksFrontier): “The lift of the isomorphism of ringed spaces has the same underlying morphism.”.
Sources
Section26.3 Open immersions of locally ringed spaces#
Section 26.3 of the Stacks Project, Tag 01HD. 5 tags here are carried by 13 registered declarations, quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 01HE, a definition
Tag 01HE in the Stacks Project.
Declarations registered for the tag:
AlgebraicGeometry.LocallyRingedSpace.IsOpenImmersionregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch26.lean, line 132 (StacksFrontier). References: EGA I (4.2.1), “more general”.
Tag 01HF, an example
Tag 01HF in the Stacks Project.
Declarations registered for the tag:
AlgebraicGeometry.LocallyRingedSpace.restrictStalkIsoregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch26.lean, line 134 (StacksFrontier): “The stalk of the restriction O_X|_U at u is the stalk of O_X at u.”.AlgebraicGeometry.LocallyRingedSpace.restrictregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch26.lean, line 137 (StacksFrontier): “(U, O_X|_U) is a locally ringed space.”. References: EGA 0 (4.1.2), “special case”; SGA 4 IV (14.1), “special case”.AlgebraicGeometry.LocallyRingedSpace.ofRestrictregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch26.lean, line 140 (StacksFrontier): “The morphism j : (U, O_U) → (X, O_X).”. References: EGA 0 (4.1.2), “special case”; EGA I (2.2.3), “more general”; EGA I (4.1.7), “special case”; SGA 4 IV (14.1), “special case”.AlgebraicGeometry.LocallyRingedSpace.IsOpenImmersion.ofRestrictregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch26.lean, line 143 (StacksFrontier): “j is an open immersion.”.
Tag 01HG, a definition
Tag 01HG in the Stacks Project.
Declarations registered for the tag:
LocallyRingedSpace.restrictregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch26.lean, line 67 (StacksFrontier): “open subspace, as the restriction along an open embedding”.LocallyRingedSpace.ofRestrictregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch26.lean, line 69 (StacksFrontier): “the inclusion of the open subspace”.
Tag 01HH, a lemma
Tag 01HH in the Stacks Project.
Declarations registered for the tag:
LocallyRingedSpace.IsOpenImmersion.isoRestrictregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch26.lean, line 71 (StacksFrontier): “existence of the isomorphism with the open subspace on the image”.LocallyRingedSpace.IsOpenImmersion.isoRestrict_hom_ofRestrictregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch26.lean, line 73 (StacksFrontier): “the factorization f = j ∘ f'”.LocallyRingedSpace.IsOpenImmersion.monoregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch26.lean, line 75 (StacksFrontier): “uniqueness, as j is a monomorphism”.
Tag 01HI, a lemma
Tag 01HI in the Stacks Project.
Declarations registered for the tag:
LocallyRingedSpace.IsOpenImmersion.liftregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch26.lean, line 77 (StacksFrontier): “existence of the restriction, through the open immersion V → Y”.LocallyRingedSpace.IsOpenImmersion.lift_facregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch26.lean, line 79 (StacksFrontier): “the square commutes”.LocallyRingedSpace.IsOpenImmersion.lift_uniqregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch26.lean, line 80 (StacksFrontier): “uniqueness”.
Sources
Section26.4 Closed immersions of locally ringed spaces#
Section 26.4 of the Stacks Project, Tag 01HJ. 7 tags here are carried by 15 declarations of the repository (all in StacksFrontier), quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 01HK, a definition
Tag 01HK in the Stacks Project.
Stacks.ClosedImmersion.IsClosedImmersion, a class in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/ClosedImmersion/Defs.lean, line 69. The attribute's comment: “the same three conditions for a morphism of locally ringed spaces”.
Stacks Project, Tag 01C2. A morphism of ringed spaces is a closed immersion when its underlying continuous map is a closed embedding, its map on structure sheaves is surjective, and the kernel of that map is locally generated by sections.
class IsClosedImmersion {X Z : RingedSpace.{u, u}} (i : Z ⟶ X) : Prop
Tag 01HL, a lemma
Tag 01HL in the Stacks Project.
Stacks.ClosedImmersion.isClosedImmersion_of_iSup_eq_top, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/ClosedImmersion/LocalAtTarget.lean, line 700. The attribute's comment: “stated for ringed spaces; the source states it for locally ringed spaces”.
Stacks Project, Tag 01HL. A morphism of ringed spaces whose restrictions over the members of an open covering of the target are closed immersions is itself a closed immersion.
This is the Stacks statement with locally ringed spaces relaxed to ringed spaces; see
Stacks.ClosedImmersion.isClosedImmersion_toShHom_of_iSup_eq_topfor the source's own formulation.
theorem isClosedImmersion_of_iSup_eq_top
{X Z : RingedSpace.{u, u}} (f : Z ⟶ X) {ι : Type v} (U : ι → Opens X)
(hU : ⨆ i, U i = ⊤)
(hf : ∀ i, IsClosedImmersion (pullback.fst (X.ofRestrict (U i).isOpenEmbedding) f)) :
IsClosedImmersion f
Stacks.ClosedImmersion.isClosedImmersion_toShHom_of_iSup_eq_top, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/ClosedImmersion/LocalAtTarget.lean, line 755.
Stacks Project, Tag 01HL. Let
f : Z ⟶ Xbe a morphism of locally ringed spaces. Forfto be a closed immersion it suffices that there is an open coveringX = ⋃ Uᵢsuch that eachf : f⁻¹ Uᵢ ⟶ Uᵢis a closed immersion.This is the source's formulation. It is the ringed-space statement
Stacks.ClosedImmersion.isClosedImmersion_of_iSup_eq_topapplied to the underlying morphism of ringed spaces, since being a closed immersion of locally ringed spaces is by definition the corresponding condition on that morphism.
theorem isClosedImmersion_toShHom_of_iSup_eq_top
{X Z : LocallyRingedSpace.{u}} (f : Z ⟶ X) {ι : Type v} (U : ι → Opens X)
(hU : ⨆ i, U i = ⊤)
(hf : ∀ i, IsClosedImmersion
(pullback.fst (X.toRingedSpace.ofRestrict (U i).isOpenEmbedding) f.toShHom)) :
IsClosedImmersion f.toShHom
Tag 01HM, an example
Tag 01HM in the Stacks Project.
Stacks.ClosedImmersion.closedSubspace, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/ClosedImmersion/ClosedSubspaceExistence.lean, line 1164. The attribute's comment: “the construction of the example: the subspace is the support of the quotient”.
The closed subspace associated to a locally generated sheaf of ideals on a locally ringed space.
public noncomputable def closedSubspace
(J : SheafOfModules.{u} (structureSheafRing X.toRingedSpace))
(j : J ⟶ SheafOfModules.unit (structureSheafRing X.toRingedSpace)) [Mono j]
(hJ : Nonempty (SheafOfModules.LocalGeneratorsData.{u} J)) :
ClosedSubspaceData X J j
Tag 01HN, a definition
Tag 01HN in the Stacks Project.
Stacks.ClosedImmersion.closedSubspace, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/ClosedImmersion/ClosedSubspaceExistence.lean, line 1164.
The closed subspace associated to a locally generated sheaf of ideals on a locally ringed space.
public noncomputable def closedSubspace
(J : SheafOfModules.{u} (structureSheafRing X.toRingedSpace))
(j : J ⟶ SheafOfModules.unit (structureSheafRing X.toRingedSpace)) [Mono j]
(hJ : Nonempty (SheafOfModules.LocalGeneratorsData.{u} J)) :
ClosedSubspaceData X J j
Tag 01HO, a lemma
Tag 01HO in the Stacks Project.
Stacks.ClosedImmersion.existsUnique_iso_closedSubspace, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Schemes/ClosedImmersions/IsomorphismOfClosedSubspaces.lean, line 256.
A closed immersion is uniquely isomorphic over its target to the closed subspace defined by its ideal sheaf.
theorem existsUnique_iso_closedSubspace {X Y : LocallyRingedSpace.{u}} (f : X ⟶ Y)
[hf : IsClosedImmersion f.toShHom] :
let Z := closedSubspace Y (idealSheaf f.toShHom) (kernel.ι _) hf.kernel_locallyGenerated
∃! e : X ≅ Z.space, e.hom ≫ Z.inclusion = f
Tag 01HP, a lemma
Tag 01HP in the Stacks Project.
Stacks.ClosedImmersion.subsingleton_factorizations_closedSubspace, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/ClosedImmersion/ClosedSubspace.lean, line 113. The attribute's comment: “uniqueness”.
Stacks Project, Tag 01HP. A factorization of a morphism of locally ringed spaces through the closed subspace associated to an ideal sheaf, when it exists, is unique.
theorem subsingleton_factorizations_closedSubspace {X' Y : LocallyRingedSpace.{u}}
(J : SheafOfModules.{u} (structureSheafRing X'.toRingedSpace))
(j : J ⟶ SheafOfModules.unit (structureSheafRing X'.toRingedSpace)) [Mono j]
(D : ClosedSubspaceData X' J j) (f : Y ⟶ X') :
Subsingleton {g : Y ⟶ D.space // g ≫ D.inclusion = f}
Stacks.ClosedImmersion.factorsThrough_closedSubspace_iff, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Schemes/ClosedImmersions/FactorizationExistence.lean, line 359. The attribute's comment: “factorization criterion”.
A morphism of locally ringed spaces factors through the closed subspace cut out by
jexactly when the canonical mapf^* J ⟶ 𝒪_Yvanishes.
theorem factorsThrough_closedSubspace_iff [Mono j] (D : ClosedSubspaceData X J j) (f : Y ⟶ X) :
(∃ g : Y ⟶ D.space, g ≫ D.inclusion = f) ↔ pullbackIdealMap f J j = 0
Stacks.ClosedImmersion.factorsThrough_closedSubspace_of_localGenerators_iff, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Schemes/ClosedImmersions/FactorizationLocalGenerators.lean, line 50. The attribute's comment: “factorization criterion”.
A morphism
f : Y ⟶ Xof locally ringed spaces factors through the closed subspace cut out by a sheaf of idealsj : J ⟶ 𝒪_Xwhich is locally generated by sections exactly when the canonical mapf^* J ⟶ 𝒪_Yvanishes.
theorem factorsThrough_closedSubspace_of_localGenerators_iff {X Y : LocallyRingedSpace.{u}}
(J : SheafOfModules.{u} (structureSheafRing X.toRingedSpace))
(j : J ⟶ SheafOfModules.unit (structureSheafRing X.toRingedSpace)) [Mono j]
(hJ : Nonempty (SheafOfModules.LocalGeneratorsData.{u} J)) (f : Y ⟶ X) :
(∃ g : Y ⟶ (closedSubspace X J j hJ).space,
g ≫ (closedSubspace X J j hJ).inclusion = f) ↔ pullbackIdealMap f J j = 0
Stacks.ClosedImmersion.subsingleton_factorizations_closedSubspace_of_localGenerators, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Schemes/ClosedImmersions/FactorizationLocalGenerators.lean, line 61. The attribute's comment: “uniqueness”.
A factorization of a morphism of locally ringed spaces through the closed subspace cut out by a sheaf of ideals which is locally generated by sections, when it exists, is unique.
theorem subsingleton_factorizations_closedSubspace_of_localGenerators
{X Y : LocallyRingedSpace.{u}}
(J : SheafOfModules.{u} (structureSheafRing X.toRingedSpace))
(j : J ⟶ SheafOfModules.unit (structureSheafRing X.toRingedSpace)) [Mono j]
(hJ : Nonempty (SheafOfModules.LocalGeneratorsData.{u} J)) (f : Y ⟶ X) :
Subsingleton {g : Y ⟶ (closedSubspace X J j hJ).space //
g ≫ (closedSubspace X J j hJ).inclusion = f}
Tag 01HQ, a lemma
Tag 01HQ in the Stacks Project.
Stacks.ClosedImmersion.pullbackIdeal_locallyGenerated, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Schemes/ClosedImmersions/Pullback.lean, line 229. The attribute's comment: “local generation”.
Stacks Project, Tag 01HQ. The inverse-image ideal of a locally generated ideal sheaf is locally generated. Tag 01B3 gives local generators for the pullback
f^* I, and the inverse-image ideal is a quotient off^* I, so the images of those generators generate it.
theorem pullbackIdeal_locallyGenerated (I : SheafOfModules.{u} (structureSheafRing Y.toRingedSpace))
(i : I ⟶ SheafOfModules.unit (structureSheafRing Y.toRingedSpace))
(hI : Nonempty (SheafOfModules.LocalGeneratorsData.{u} I)) :
Nonempty (SheafOfModules.LocalGeneratorsData.{u} (pullbackIdeal f I i))
Stacks.ClosedImmersion.restrictedMap, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Schemes/ClosedImmersions/Pullback.lean, line 311. The attribute's comment: “restricted map”.
Stacks Project, Tag 01HQ. The morphism of closed subspaces induced by
f.
noncomputable def restrictedMap (I : SheafOfModules.{u} (structureSheafRing Y.toRingedSpace))
(i : I ⟶ SheafOfModules.unit (structureSheafRing Y.toRingedSpace)) [Mono i]
(hI : Nonempty (SheafOfModules.LocalGeneratorsData.{u} I)) :
(pullbackClosedSubspace f I i hI).space ⟶ (closedSubspace Y I i hI).space
Stacks.ClosedImmersion.restrictedMap_commutes, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Schemes/ClosedImmersions/Pullback.lean, line 320. The attribute's comment: “commutative square”.
Stacks Project, Tag 01HQ. The induced map commutes with the inclusions into the ambient spaces.
theorem restrictedMap_commutes (I : SheafOfModules.{u} (structureSheafRing Y.toRingedSpace))
(i : I ⟶ SheafOfModules.unit (structureSheafRing Y.toRingedSpace)) [Mono i]
(hI : Nonempty (SheafOfModules.LocalGeneratorsData.{u} I)) :
restrictedMap f I i hI ≫ (closedSubspace Y I i hI).inclusion =
(pullbackClosedSubspace f I i hI).inclusion ≫ f
Stacks.ClosedImmersion.restrictedMap_unique, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Schemes/ClosedImmersions/Pullback.lean, line 330. The attribute's comment: “uniqueness”.
Stacks Project, Tag 01HQ. A morphism between the associated closed subspaces over
fis the induced one.
theorem restrictedMap_unique (I : SheafOfModules.{u} (structureSheafRing Y.toRingedSpace))
(i : I ⟶ SheafOfModules.unit (structureSheafRing Y.toRingedSpace)) [Mono i]
(hI : Nonempty (SheafOfModules.LocalGeneratorsData.{u} I))
(g : (pullbackClosedSubspace f I i hI).space ⟶ (closedSubspace Y I i hI).space)
(hg : g ≫ (closedSubspace Y I i hI).inclusion =
(pullbackClosedSubspace f I i hI).inclusion ≫ f) :
g = restrictedMap f I i hI
Stacks.ClosedImmersion.restrictedMap_isPullback, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Schemes/ClosedImmersions/Pullback.lean, line 345. The attribute's comment: “fibre square”.
Stacks Project, Tag 01HQ. The restriction square is a fibre square of locally ringed spaces.
theorem restrictedMap_isPullback (I : SheafOfModules.{u} (structureSheafRing Y.toRingedSpace))
(i : I ⟶ SheafOfModules.unit (structureSheafRing Y.toRingedSpace)) [Mono i]
(hI : Nonempty (SheafOfModules.LocalGeneratorsData.{u} I)) :
IsPullback (pullbackClosedSubspace f I i hI).inclusion (restrictedMap f I i hI) f
(closedSubspace Y I i hI).inclusion
Sources
Section26.5 Affine schemes#
Section 26.5 of the Stacks Project, Tag 01HR. 5 tags here are carried by 15 declarations of the repository (all in StacksFrontier) and 20 registered declarations, quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 01HS, a lemma
Tag 01HS in the Stacks Project.
Stacks.Cohomology.Cech.exists_isStandardOpenCoverOfSpectrum_refinement, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Cohomology/Cech/StandardCoverCofinality.lean, line 105. The attribute's comment: “part (2), for an affine open of a scheme”.
Any open covering of an affine open of a scheme is refined by a finite standard open covering of it. This is the scheme-level form of [Stacks, Tag 01HS] part (2), and it is condition (2) of [Stacks, Tag 01EW] for the system of finite standard open coverings of affine opens: the returned family
gof sections overUsatisfies the standard-covering condition of [Stacks, Tag 01HT], its ambient basic opens coverU, and each of them is contained in a member of the given family.
theorem exists_isStandardOpenCoverOfSpectrum_refinement {U : X.Opens} (hU : IsAffineOpen U)
{ι : Type v} (W : ι → X.Opens) (hW : U ≤ ⨆ i, W i) :
∃ (n : ℕ) (g : Fin n → Γ(X, U)) (a : Fin n → ι),
PrimeSpectrum.IsStandardOpenCoverOfSpectrum g ∧ (⨆ j, X.basicOpen (g j)) = U ∧
∀ j, X.basicOpen (g j) ≤ W (a j)
PrimeSpectrum.ringRestrictionMap, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Scheme/Zariski/RestrictionMaps.lean, line 55. The attribute's comment: “ring_restriction_map”.
The canonical
R-algebra mapR_f → R_gattached to an inclusionD(g) ⊆ D(f).
noncomputable def ringRestrictionMap {R : Type u} [CommRing R] (f g : R)
(hfg : PrimeSpectrum.basicOpen g ≤ PrimeSpectrum.basicOpen f) :
Localization.Away f →ₐ[R] Localization.Away g
PrimeSpectrum.ringRestrictionMap_unique, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Scheme/Zariski/RestrictionMaps.lean, line 66. The attribute's comment: “ring_restriction_map”.
The restriction map is canonical: it is the unique
R-algebra homomorphism fromR_ftoR_g.
theorem ringRestrictionMap_unique {R : Type u} [CommRing R] (f g : R)
(hfg : PrimeSpectrum.basicOpen g ≤ PrimeSpectrum.basicOpen f)
(φ : Localization.Away f →ₐ[R] Localization.Away g) :
φ = ringRestrictionMap f g hfg
PrimeSpectrum.moduleRestrictionMap, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Scheme/Zariski/RestrictionMaps.lean, line 76. The attribute's comment: “module_restriction_map”.
The canonical
R_f-linear restriction mapM_f → M_gassociated to an inclusionD(g) ⊆ D(f).
noncomputable def moduleRestrictionMap {R : Type u} [CommRing R]
{M : Type v} [AddCommGroup M] [Module R M] (f g : R)
(hfg : PrimeSpectrum.basicOpen g ≤ PrimeSpectrum.basicOpen f) :
let φ := ringRestrictionMap f g hfg
letI := Module.compHom (R := Localization.Away g) (S := Localization.Away f)
(LocalizedModule.Away (R := R) g M) φ.toRingHom
LocalizedModule.Away (R := R) f M →ₗ[Localization.Away f]
LocalizedModule.Away (R := R) g M
PrimeSpectrum.moduleRestrictionMap_mk, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Scheme/Zariski/RestrictionMaps.lean, line 118. The attribute's comment: “module_restriction_map”.
The module restriction map agrees with the canonical localization maps on elements of
M.
theorem moduleRestrictionMap_mk {R : Type u} [CommRing R]
{M : Type v} [AddCommGroup M] [Module R M] (f g : R)
(hfg : PrimeSpectrum.basicOpen g ≤ PrimeSpectrum.basicOpen f) (m : M) :
moduleRestrictionMap f g hfg
(LocalizedModule.mkLinearMap (Submonoid.powers f) M m) =
LocalizedModule.mkLinearMap (Submonoid.powers g) M m
PrimeSpectrum.moduleRestrictionMap_unique, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Scheme/Zariski/RestrictionMaps.lean, line 130. The attribute's comment: “module_restriction_map”.
An
R_f-linear mapM_f → M_gwhich agrees with the localization maps fromMis the canonical module restriction map.
theorem moduleRestrictionMap_unique {R : Type u} [CommRing R]
{M : Type v} [AddCommGroup M] [Module R M] (f g : R)
(hfg : PrimeSpectrum.basicOpen g ≤ PrimeSpectrum.basicOpen f)
(F :
let φ := ringRestrictionMap f g hfg
letI := Module.compHom (R := Localization.Away g) (S := Localization.Away f)
(LocalizedModule.Away (R := R) g M) φ.toRingHom
LocalizedModule.Away (R := R) f M →ₗ[Localization.Away f]
LocalizedModule.Away (R := R) g M)
(hF : ∀ m : M,
F (LocalizedModule.mkLinearMap (Submonoid.powers f) M m) =
LocalizedModule.mkLinearMap (Submonoid.powers g) M m) :
F = moduleRestrictionMap f g hfg
PrimeSpectrum.basicOpen_le_iSup_iff_span_algebraMap_eq_top, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Scheme/Zariski/StandardOpenCover.lean, line 66. The attribute's comment: “cover_iff_unit_ideal”.
A standard open
D(f)is contained in the union of the standard opensD(g i)if and only if the images of theg igenerate the unit ideal after localizing away fromf.
theorem basicOpen_le_iSup_iff_span_algebraMap_eq_top
{R : Type u} [CommRing R] {S : Type v} [CommRing S] [Algebra R S]
{ι : Type w} (f : R) [IsLocalization.Away f S] (g : ι → R) :
PrimeSpectrum.basicOpen f ≤ ⨆ i, PrimeSpectrum.basicOpen (g i) ↔
Ideal.span (Set.range fun i ↦ algebraMap R S (g i)) = ⊤
PrimeSpectrum.exists_finite_basicOpen_refinement, a lemma in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Scheme/Zariski/StandardOpenCover.lean, line 88. The attribute's comment: “finite_standard_refinement”.
Every open cover of a standard open in the prime spectrum has a finite refinement by standard opens.
lemma exists_finite_basicOpen_refinement {R : Type u} [CommSemiring R]
{ι : Type*} (f : R) (U : ι → Opens (PrimeSpectrum R))
(hU : PrimeSpectrum.basicOpen f ≤ ⨆ i, U i) :
∃ (n : ℕ) (g : Fin n → R) (a : Fin n → ι),
PrimeSpectrum.basicOpen f = ⨆ j, PrimeSpectrum.basicOpen (g j) ∧
∀ j, PrimeSpectrum.basicOpen (g j) ≤ U (a j)
PrimeSpectrum.exists_pow_eq_mul_of_basicOpen_le, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Scheme/Zariski/StandardOpenCover.lean, line 128. The attribute's comment: “power_divisible”. References: EGA I (1.1.9), “partial”.
If
D(g) ⊆ D(f), a positive power ofgis a multiple off.
theorem exists_pow_eq_mul_of_basicOpen_le {R : Type*} [CommRing R] {f g : R}
(hfg : PrimeSpectrum.basicOpen g ≤ PrimeSpectrum.basicOpen f) :
∃ e : ℕ, 1 ≤ e ∧ ∃ a : R, g ^ e = a * f
Declarations registered for the tag:
PrimeSpectrum.basicOpen_le_basicOpen_iff_algebraMap_isUnitregistered withadd_to_stacksin StacksFrontier/AlgebraicGeometry/Scheme/Zariski/StandardOpenCover.lean, line 44 (StacksFrontier): “invertible_on_smaller_open”. References: EGA I (1.3.2), “(a) ⇔ (f)”.
Tag 01HT, a definition
Tag 01HT in the Stacks Project.
PrimeSpectrum.IsStandardOpenCover, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Scheme/Zariski/StandardOpenCover.lean, line 55. The attribute's comment: “part (2)”.
A family
D(g i), indexed byFin n, is a standard open covering ofD(f)when its supremum isD(f).
def IsStandardOpenCover {R : Type u} [CommRing R] (f : R) {n : ℕ} (g : Fin n → R) : Prop
PrimeSpectrum.IsStandardOpenCoverOfSpectrum, an abbrev in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Scheme/Zariski/StandardOpenCover.lean, line 60. The attribute's comment: “part (1)”.
A standard open covering of
Spec R, expressed as the caseD(1) = Spec R.
abbrev IsStandardOpenCoverOfSpectrum {R : Type u} [CommRing R] {n : ℕ} (g : Fin n → R) : Prop
Tag 01HU, a definition
Tag 01HU in the Stacks Project.
Declarations registered for the tag:
Spec.structureSheafregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch26.lean, line 82 (StacksFrontier): “(1) the structure sheaf”.StructureSheaf.IsLocalization.to_basicOpenregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch26.lean, line 83 (StacksFrontier): “(1) its sections over a standard open D(f) are the localization R_f”.Spec.locallyRingedSpaceObjregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch26.lean, line 85 (StacksFrontier): “(2) the spectrum as a locally ringed space”.tilderegistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch26.lean, line 86 (StacksFrontier): “(3) the sheaf of modules associated to a module”.
Tag 01HV, a lemma
Tag 01HV in the Stacks Project.
AlgebraicGeometry.tilde.basicOpen_map, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Scheme/Affine/Functoriality.lean, line 146. The attribute's comment: “functorial_identifications”.
Under the canonical localization identifications, the map on sections over a standard open induced by a module map is its localization.
theorem basicOpen_map {R : CommRingCat.{u}} {M N : ModuleCat.{u} R}
(f : M ⟶ N) (a : R) (m : LocalizedModule.Away (R := R) a M) :
((modulesSpecToSheaf.map (tilde.map f)).1.app
(.op (PrimeSpectrum.basicOpen a)))
((IsLocalizedModule.iso (Submonoid.powers a)
(tilde.toOpen M (PrimeSpectrum.basicOpen a)).hom) m) =
(IsLocalizedModule.iso (Submonoid.powers a)
(tilde.toOpen N (PrimeSpectrum.basicOpen a)).hom)
(IsLocalizedModule.map (Submonoid.powers a)
(LocalizedModule.mkLinearMap (Submonoid.powers a) M)
(LocalizedModule.mkLinearMap (Submonoid.powers a) N) f.hom m)
AlgebraicGeometry.tilde.toStalk_map, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Scheme/Affine/Functoriality.lean, line 179. The attribute's comment: “functorial_identifications”.
The canonical identification of the stalk of an associated sheaf with localization at a prime is natural in the module.
theorem toStalk_map {R : CommRingCat.{u}} {M N : ModuleCat.{u} R}
(f : M ⟶ N) (x : PrimeSpectrum.Top R)
(m : (tilde M).presheaf.stalk x) :
((TopCat.Presheaf.stalkFunctor Ab x).map
(Scheme.Modules.Hom.mapPresheaf (tilde.map f))) m =
IsLocalizedModule.map x.asIdeal.primeCompl
(tilde.toStalk M x).hom (tilde.toStalk N x).hom f.hom m
AlgebraicGeometry.StructureSheaf.map_basicOpen, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Scheme/Affine/Sections.lean, line 74. The attribute's comment: “restriction_maps”.
Under the canonical identifications of sections on standard opens with localizations, restriction in the structure sheaf is the canonical map
R_f → R_g.
theorem map_basicOpen {R : CommRingCat.{u}} (f g : R)
(hfg : PrimeSpectrum.basicOpen g ≤ PrimeSpectrum.basicOpen f) :
((AlgebraicGeometry.Spec.structureSheaf R).obj.map (homOfLE hfg).op).hom.comp
(IsLocalization.algEquiv (Submonoid.powers f) (Localization.Away f)
((AlgebraicGeometry.Spec.structureSheaf R).obj.obj
(.op (PrimeSpectrum.basicOpen f)))).toRingHom =
(IsLocalization.algEquiv (Submonoid.powers g) (Localization.Away g)
((AlgebraicGeometry.Spec.structureSheaf R).obj.obj
(.op (PrimeSpectrum.basicOpen g)))).toRingHom.comp
(PrimeSpectrum.ringRestrictionMap f g hfg).toRingHom
AlgebraicGeometry.tilde.map_basicOpen, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Scheme/Affine/Sections.lean, line 111. The attribute's comment: “restriction_maps”.
Sections of the associated sheaf on
D(f)andD(g)are canonically isomorphic toM_fandM_g. The isomorphisms identify sheaf restriction with the canonical mapM_f → M_g.
theorem map_basicOpen {R : CommRingCat.{u}} (M : ModuleCat.{u} R) (f g : R)
(hfg : PrimeSpectrum.basicOpen g ≤ PrimeSpectrum.basicOpen f) :
∀ x : LocalizedModule.Away (R := R) f M,
(modulesSpecToSheaf.obj (tilde M)).presheaf.map (homOfLE hfg).op
((IsLocalizedModule.iso (Submonoid.powers f)
(tilde.toOpen M (PrimeSpectrum.basicOpen f)).hom) x) =
(IsLocalizedModule.iso (Submonoid.powers g)
(tilde.toOpen M (PrimeSpectrum.basicOpen g)).hom)
(PrimeSpectrum.moduleRestrictionMap f g hfg x)
Declarations registered for the tag:
AlgebraicGeometry.tilde.functorregistered withadd_to_stacksin StacksFrontier/AlgebraicGeometry/Scheme/Affine/Functoriality.lean, line 32 (StacksFrontier): “functorial_identifications”. References: EGA I (1.3.5); EGA II (1.4.4), “partial”.AlgebraicGeometry.tilde.toOpen_map_appregistered withadd_to_stacksin StacksFrontier/AlgebraicGeometry/Scheme/Affine/Functoriality.lean, line 35 (StacksFrontier): “functorial_identifications”.AlgebraicGeometry.tilde.toTildeΓNatIsoregistered withadd_to_stacksin StacksFrontier/AlgebraicGeometry/Scheme/Affine/Functoriality.lean, line 36 (StacksFrontier): “functorial_identifications”. References: EGA I (1.3.7); EGA I (10.10.2), “(i), special case”.AlgebraicGeometry.instIsLeftAdjointModuleCatCarrierModulesSpecFunctorregistered withadd_to_stacksin StacksFrontier/AlgebraicGeometry/Scheme/Affine/Functoriality.lean, line 39 (StacksFrontier): “tilde_exact”.AlgebraicGeometry.StructureSheaf.globalSectionsIsoregistered withadd_to_stacksin StacksFrontier/AlgebraicGeometry/Scheme/Affine/Sections.lean, line 48 (StacksFrontier): “global_structure_sections”. References: EGA I (1.3.7), “Case M = A”; EGA I (10.1.3), “special case”.AlgebraicGeometry.tilde.isoTopregistered withadd_to_stacksin StacksFrontier/AlgebraicGeometry/Scheme/Affine/Sections.lean, line 51 (StacksFrontier): “global_module_sections”. References: EGA I (1.3.7); EGA I (10.10.2), “(i), special case”.AlgebraicGeometry.StructureSheaf.IsLocalization.to_basicOpenregistered withadd_to_stacksin StacksFrontier/AlgebraicGeometry/Scheme/Affine/Sections.lean, line 54 (StacksFrontier): “basic_open_structure_sections”. References: EGA I (9.3.2), “special case”; EGA I (9.3.3), “special case”; EGA III (1.2.2), “special case”.AlgebraicGeometry.tilde.instAwayCarrierCarrierObjOppositeOpensCarrierCarrierCommRingCatSpecModuleCatPresheafModulesSheafModulesSpecToSheafOpBasicOpenHomToOpenregistered withadd_to_stacksin StacksFrontier/AlgebraicGeometry/Scheme/Affine/Sections.lean, line 59 (StacksFrontier): “basic_open_module_sections”. References: EGA I (1.3.7).AlgebraicGeometry.StructureSheaf.IsLocalization.to_stalkregistered withadd_to_stacksin StacksFrontier/AlgebraicGeometry/Scheme/Affine/Sections.lean, line 63 (StacksFrontier): “structure_stalk”.AlgebraicGeometry.tilde.instIsLocalizedModuleCarrierCarrierOfCarrierStalkAbPresheafPrimeComplAsIdealHomToStalkregistered withadd_to_stacksin StacksFrontier/AlgebraicGeometry/Scheme/Affine/Sections.lean, line 64 (StacksFrontier): “module_stalk”.AlgebraicGeometry.tilde.preservesFiniteLimits, declared in the repository, registered withadd_to_stacksin StacksFrontier/Homology/PseudoCoherentRelative/TildeExact.lean, line 276 (StacksFrontier): “tilde_exact: left exactness”.Stacks.AffineTilde.tildeFunctor_preservesHomology, declared in the repository, registered withadd_to_stacksin StacksFrontier/Homology/PseudoCoherentRelative/TildeExact.lean, line 278 (StacksFrontier): “tilde_exact: exactness as preservation of homology”.
Tag 01HW, a definition
Tag 01HW in the Stacks Project.
Declarations registered for the tag:
AffineSchemeregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch26.lean, line 88 (StacksFrontier): “the category of affine schemes, schemes isomorphic to some Spec R”.essImage_Specregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch26.lean, line 90 (StacksFrontier): “being isomorphic to some Spec R is being affine”.Scheme.fullyFaithfulForgetToLocallyRingedSpaceregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch26.lean, line 91 (StacksFrontier): “morphisms of schemes are the morphisms of locally ringed spaces”.
Sources
Section26.6 The category of affine schemes#
Section 26.6 of the Stacks Project, Tag 01HX. 8 tags here are carried by 6 declarations of the repository (all in StacksFrontier) and 9 registered declarations, quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 01HY, a lemma
Tag 01HY in the Stacks Project.
AlgebraicGeometry.isoSpec_hom_base_apply_of_isAffine, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Schemes/MorphismsToAffine.lean, line 215.
Let
Xbe a locally ringed space, letYbe an affine scheme and letf : X ⟶ Ybe a morphism of locally ringed spaces. Givenx : X, consider the ring mapsΓ(Y, 𝒪_Y) --f^♯--> Γ(X, 𝒪_X) ⟶ 𝒪_{X,x}and let
p ⊆ Γ(Y, 𝒪_Y)be the inverse image of the maximal idealm_x. Lety ∈ Ybe the corresponding point. Thenf x = y.The point
yof the affine schemeYcorresponding to a prime ofΓ(Y, 𝒪_Y)is named by transporting alongAlgebraicGeometry.Scheme.isoSpec, the identification ofYwithSpec Γ(Y, 𝒪_Y): the statement here is thatY.isoSpec.homsendsf xtop, andAlgebraicGeometry.base_eq_isoSpec_inv_base_of_isAffineis the same thing written asf x = y. The primepis spelled as the inverse image alongf^♯of the inverse image alongΓ(X, 𝒪_X) ⟶ 𝒪_{X,x}of the maximal ideal, which is the inverse image along the composite.
theorem isoSpec_hom_base_apply_of_isAffine (X : LocallyRingedSpace.{u}) (Y : Scheme.{u})
[IsAffine Y] (f : X ⟶ Y.toLocallyRingedSpace) (x : X) :
Y.isoSpec.hom.base (f.base x) =
PrimeSpectrum.comap (LocallyRingedSpace.Γ.map f.op).hom
(PrimeSpectrum.comap (X.presheaf.Γgerm x).hom
(IsLocalRing.closedPoint (X.presheaf.stalk x)))
Tag 01HZ, a lemma
Tag 01HZ in the Stacks Project.
Declarations registered for the tag:
RingedSpace.basicOpenregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch26.lean, line 94 (StacksFrontier): “D(f), the locus where the germ of f is a unit, is open”.RingedSpace.mem_top_basicOpenregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch26.lean, line 95 (StacksFrontier): “membership in D(f) for a global section”.RingedSpace.isUnit_res_basicOpenregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch26.lean, line 96 (StacksFrontier): “f is invertible on D(f)”.
Tag 01I0, a lemma
Tag 01I0 in the Stacks Project.
Declarations registered for the tag:
basicOpen_eq_of_affineregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch26.lean, line 98 (StacksFrontier): “for X = Spec R”.Scheme.toSpecΓ_preimage_basicOpenregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch26.lean, line 99 (StacksFrontier): “for X affine, through X ≅ Spec Γ(X)”.
Tag 01I1, a lemma
Tag 01I1 in the Stacks Project.
AlgebraicGeometry.bijective_Γ_map_op_of_isAffine, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Schemes/MorphismsToAffine.lean, line 146. References: EGA I (1.7.3), “more general”.
Let
Xbe a locally ringed space and letYbe an affine scheme. The mapMor(X, Y) ⟶ Hom(Γ(Y, 𝒪_Y), Γ(X, 𝒪_X))sending a morphism to the ring map it induces on global sections is bijective.
The target is read as a locally ringed space, which is where the morphisms of the source live.
theorem bijective_Γ_map_op_of_isAffine (X : LocallyRingedSpace.{u}) (Y : Scheme.{u}) [IsAffine Y] :
Function.Bijective (fun f : X ⟶ Y.toLocallyRingedSpace =>
LocallyRingedSpace.Γ.map f.op)
Tag 01I2, a lemma
Tag 01I2 in the Stacks Project.
Declarations registered for the tag:
AffineScheme.equivCommRingCatregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch26.lean, line 101 (StacksFrontier): “the equivalence with the opposite of rings”.AffineScheme.ΓIsEquivregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch26.lean, line 102 (StacksFrontier): “it is given by global sections”.
Tag 01I3, a lemma
Tag 01I3 in the Stacks Project.
Declarations registered for the tag:
IsAffineOpen.basicOpenregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch26.lean, line 104 (StacksFrontier).
Tag 01I4, a lemma
Tag 01I4 in the Stacks Project.
AlgebraicGeometry.AffineScheme.preservesLimits_forgetToLocallyRingedSpace, an instance in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Scheme/Affine/FibreProductsLocallyRingedSpaces.lean, line 55. The attribute's comment: “limits agree with those of locally ringed spaces”.
The forgetful functor from affine schemes to locally ringed spaces preserves all limits: limits of affine schemes, in particular products and fibre products, are the same as those computed in locally ringed spaces.
instance preservesLimits_forgetToLocallyRingedSpace :
PreservesLimits (forgetToScheme.{u} ⋙ Scheme.forgetToLocallyRingedSpace)
AlgebraicGeometry.LocallyRingedSpace.prodSpecIso, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Scheme/Affine/FibreProductsLocallyRingedSpaces.lean, line 96. The attribute's comment: “products in locally ringed spaces”.
In the category of locally ringed spaces,
Spec R × Spec S ≅ Spec (R ⊗[ℤ] S).
noncomputable def prodSpecIso :
Spec.locallyRingedSpaceObj (.of R) ⨯ Spec.locallyRingedSpaceObj (.of S) ≅
Spec.locallyRingedSpaceObj (.of (R ⊗[ℤ] S))
AlgebraicGeometry.LocallyRingedSpace.pullbackSpecIso, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Scheme/Affine/FibreProductsLocallyRingedSpaces.lean, line 142. The attribute's comment: “fibre products in locally ringed spaces”.
In the category of locally ringed spaces,
Spec A ×_{Spec R} Spec B ≅ Spec (A ⊗[R] B).
noncomputable def pullbackSpecIso :
pullback (Spec.locallyRingedSpaceMap (ofHom (algebraMap R A)))
(Spec.locallyRingedSpaceMap (ofHom (algebraMap R B))) ≅
Spec.locallyRingedSpaceObj (.of (A ⊗[R] B))
Declarations registered for the tag:
AlgebraicGeometry.AffineScheme.hasLimitsregistered withadd_to_stacksin StacksFrontier/AlgebraicGeometry/Scheme/Affine/FibreProductsLocallyRingedSpaces.lean, line 44 (StacksFrontier): “finite products and fibre products exist”.
Tag 01I5, a lemma
Tag 01I5 in the Stacks Project.
Stacks.ZariskiAndSeparation.AffineDisjointUnion.isAffine_of_sup_eq_top_of_disjoint, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Schemes/ZariskiAndSeparation/AffineDisjointUnion.lean, line 39. The attribute's comment: “for a scheme; a locally ringed space with an affine open cover is one”.
A scheme covered by two disjoint affine opens is affine.
theorem isAffine_of_sup_eq_top_of_disjoint {X : Scheme.{u}} (U V : X.Opens)
(hUV : U ⊔ V = ⊤) (hd : Disjoint U V) (hU : IsAffineOpen U) (hV : IsAffineOpen V) :
IsAffine X
Sources
Section26.7 Quasi-coherent sheaves on affines#
Section 26.7 of the Stacks Project, Tag 01I6. 8 tags here are carried by 42 declarations of the repository (all in StacksFrontier) and 5 registered declarations, quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 01I7, a lemma
Tag 01I7 in the Stacks Project.
AlgebraicGeometry.tildeAssociatedSheafNatIso, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Scheme/QuasiCoherentSheaves/Basic.lean, line 60. The attribute's comment: “canonical functorial comparison”. References: EGA I (1.8.6), “u = id on Spec R”.
The canonical comparison between the affine construction
M ↦ M̃onSpec Rand tensor sheafification alongR → Γ(Spec R, 𝒪): a natural isomorphism of the two functors, together with the equation that on global sections it sendsmto1 ⊗ m.
noncomputable def tildeAssociatedSheafNatIso (R : CommRingCat.{u}) :
{ e : tilde.functor R ≅
associatedSheafFunctor (Spec R).toRingedSpace
(Scheme.ΓSpecIso R).inv.hom //
∀ (M : ModuleCat R) (m : M),
(e.hom.app M).val.app (op ⊤) (tilde.toOpen M ⊤ m) =
tensorUnitSection (X := (Spec R).toRingedSpace)
(Scheme.ΓSpecIso R).inv.hom M (op ⊤) m }
Declarations registered for the tag:
AlgebraicGeometry.instIsQuasicoherentOpensCarrierCarrierCommRingCatSpecTilderegistered withadd_to_stacksin StacksFrontier/AlgebraicGeometry/Scheme/QuasiCoherentSheaves/Basic.lean, line 103 (StacksFrontier): “quasi-coherence”. References: EGA I (1.4.1), “a ⇒ c for V = Spec A”; EGA I (4.1.1), “affine case”; SGA 6 0 (2.5), “partial”.AlgebraicGeometry.tilde.adjunctionregistered withadd_to_stacksin StacksFrontier/AlgebraicGeometry/Scheme/QuasiCoherentSheaves/Basic.lean, line 111 (StacksFrontier): “mapping property”.
Tag 01I8, a lemma
Tag 01I8 in the Stacks Project.
Stacks.AffineExteriorPower.tildeExteriorPowerIso, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/AffineExteriorPowerCompare/Basic.lean, line 51. The attribute's comment: “exterior_power”.
The affine exterior-power comparison. The associated sheaf of the
n-th exterior power ofMis then-th exterior power ofM̃.
def tildeExteriorPowerIso (n : ℕ) :
(tilde (ModuleCat.of ↥R ↥(⋀[↥R]^n ↥M)) : SheafOfModules.{u} (Spec R).ringCatSheaf) ≅
A.exteriorPower n
Stacks.AffineExteriorPower.tildeExteriorPowerIso_natural, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/AffineExteriorPowerCompare/Natural.lean, line 156. The attribute's comment: “exterior_power”.
The affine exterior-power comparison is natural. It respects every unital homomorphism of exterior algebra sheaves extending the map
M̃ ⟶ Ñof generating module sheaves on the degree-one generators; the universal property of the exterior algebra makes such a homomorphism unique, so this determines the degree-nsquare.
theorem tildeExteriorPowerIso_natural (n : ℕ)
(A : SheafOfModules.TensorExteriorSymmetricAlgebras
(Opens.grothendieckTopology ↥(Spec R)) (tilde M))
(B : SheafOfModules.TensorExteriorSymmetricAlgebras
(Opens.grothendieckTopology ↥(Spec R)) (tilde N))
(g : SheafOfModules.GradedAlgebra.UnitalHom A.exterior B.exterior)
(hg : A.exteriorGenerator ≫ g.app 1 = tilde.map f ≫ B.exteriorGenerator) :
tilde.map (ModuleCat.ofHom (R := R)
(X := ModuleCat.of ↥R ↥(⋀[↥R]^n ↥M)) (Y := ModuleCat.of ↥R ↥(⋀[↥R]^n ↥N))
(exteriorPower.map n f.hom)) ≫ (tildeExteriorPowerIso N B n).hom =
(tildeExteriorPowerIso M A n).hom ≫ g.app (n : ℤ)
Stacks.AffineExteriorPower.tildeExteriorPowerIso_hom_ιMulti, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/AffineExteriorPowerCompare/Wedge.lean, line 163. The attribute's comment: “exterior_power”.
The affine exterior-power comparison on a wedge of global sections. The global section of
(⋀ⁿ_R M)~attached tom₁ ∧ ⋯ ∧ mₙis carried to the ordered product, in⋀(M̃), of the degree-one generators at the global sections ofM̃attached to themᵢ.
theorem tildeExteriorPowerIso_hom_ιMulti
(A : SheafOfModules.TensorExteriorSymmetricAlgebras
(Opens.grothendieckTopology ↥(Spec R)) (tilde M)) (s : Fin n → ↥M) :
(((tilde.adjunction (R := R)).homEquiv (ModuleCat.of ↥R ↥(⋀[↥R]^n ↥M))
(A.exteriorPower n)) (tildeExteriorPowerIso M A n).hom).hom
(exteriorPower.ιMulti ↥R n s) =
A.exterior.toPresheafGradedAlgebra.homogeneousProd (specGlobalOpen R) n
(fun i => A.exteriorGenerator.val.app (specGlobalOpen R)
((tilde.toOpen M ⊤).hom (s i)))
Stacks.SymGraded.tildeSymmetricPowerIso, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/AffineSymmetricPowerCompare/Basic.lean, line 72. The attribute's comment: “symmetric_power”.
The affine symmetric-power comparison. The associated sheaf of the
n-th symmetric power ofMis then-th symmetric power ofM̃.
def tildeSymmetricPowerIso (n : ℕ) :
(tilde (ModuleCat.of R (SymPow.symmetricPower n R M)) :
SheafOfModules.{u} (Spec R).ringCatSheaf) ≅ A.symmetricPower n
Stacks.SymGraded.tildeSymmetricPowerIso_unit, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/AffineSymmetricPowerCompare/Basic.lean, line 124. The attribute's comment: “symmetric_power”.
In degree zero the comparison takes the algebraic unit to the unit of the symmetric algebra sheaf.
theorem tildeSymmetricPowerIso_unit :
let x : SymPow.symmetricPower 0 R M := ⟨1, one_mem_gradedPiece (R := R) M⟩
(((tilde.adjunction (R := R)).homEquiv
(ModuleCat.of R (SymPow.symmetricPower 0 R M))
(A.symmetricPower 0))
(tildeSymmetricPowerIso M A 0).hom).hom x =
A.symmetric.one.eval (.op (⊤ : Opens (Spec R).carrier))
Stacks.SymGraded.tildeSymmetricPowerIso_generator, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/AffineSymmetricPowerCompare/Basic.lean, line 144. The attribute's comment: “symmetric_power”.
In degree one the comparison takes an algebraic generator to the corresponding generator of the symmetric algebra sheaf.
theorem tildeSymmetricPowerIso_generator (m : M) :
let x : SymPow.symmetricPower 1 R M :=
⟨SymmetricAlgebra.ι R M m, ι_mem_gradedPiece_one (R := R) M m⟩
(((tilde.adjunction (R := R)).homEquiv
(ModuleCat.of R (SymPow.symmetricPower 1 R M))
(A.symmetricPower 1))
(tildeSymmetricPowerIso M A 1).hom).hom x =
(A.symmetricGenerator.val.app (.op (⊤ : Opens (Spec R).carrier)))
((tilde.toOpen M ⊤).hom m)
Stacks.SymGraded.tildeSymmetricPowerIso_mul_generator, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/AffineSymmetricPowerCompare/Mul.lean, line 99. The attribute's comment: “symmetric_power”.
The comparison in degree
n + 1takes multiplication by an algebraic degree-one generator to multiplication by the corresponding sheaf generator. Together with the degree-one normalization this fixes the canonical comparison in every degree.
theorem tildeSymmetricPowerIso_mul_generator (n : ℕ) (m : M)
(x : SymPow.symmetricPower n R M) :
HEq
((((tilde.adjunction (R := R)).homEquiv
(ModuleCat.of R (SymPow.symmetricPower (n + 1) R M))
(A.symmetricPower (n + 1)))
(tildeSymmetricPowerIso M A (n + 1)).hom).hom
(SymPow.symMulMap n (LinearMap.id : M →ₗ[R] M) (m ⊗ₜ[R] x)))
((A.symmetric.mul 1 (n : ℤ)).app (.op (⊤ : Opens (Spec R).carrier))
(A.symmetricGenerator.val.app (.op (⊤ : Opens (Spec R).carrier))
((tilde.toOpen M ⊤).hom m))
((tildeSymmetricPowerIso M A n).hom.val.app (.op (⊤ : Opens (Spec R).carrier))
((tilde.toOpen (ModuleCat.of R (SymPow.symmetricPower n R M)) ⊤).hom x)))
Stacks.SymGraded.tildeSymmetricPowerIso_natural, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/AffineSymmetricPowerCompare/Natural.lean, line 58. The attribute's comment: “symmetric_power”.
The affine symmetric-power comparison is natural. It respects every unital homomorphism of symmetric algebra sheaves extending the map of generating module sheaves; the universal property of the symmetric algebra makes such a homomorphism unique.
theorem tildeSymmetricPowerIso_natural (n : ℕ)
(A : SheafOfModules.TensorExteriorSymmetricAlgebras
(Opens.grothendieckTopology ↥(Spec R)) (tilde M))
(B : SheafOfModules.TensorExteriorSymmetricAlgebras
(Opens.grothendieckTopology ↥(Spec R)) (tilde N))
(g : SheafOfModules.GradedAlgebra.UnitalHom A.symmetric B.symmetric)
(hg : A.symmetricGenerator ≫ g.app 1 = tilde.map f ≫ B.symmetricGenerator) :
tilde.map (ModuleCat.ofHom (R := R)
(X := ModuleCat.of R (SymPow.symmetricPower n R M))
(Y := ModuleCat.of R (SymPow.symmetricPower n R N)) (SymPow.symMap n f.hom)) ≫
(tildeSymmetricPowerIso N B n).hom =
(tildeSymmetricPowerIso M A n).hom ≫ g.app (n : ℤ)
Stacks.SymGraded.tildeSymmetricPowerIso_natural_symMap, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/AffineSymmetricPowerCompare/Natural.lean, line 129. The attribute's comment: “symmetric_power”.
The affine symmetric-power comparison is natural, for the canonical induced map. This is
Stacks.SymGraded.tildeSymmetricPowerIso_naturalinstantiated atsymmetricAlgebraHom, the unital homomorphism the universal property of the symmetric algebra provides, so that the square is stated against a canonical map rather than a hypothesised one. The left-hand map is the associated sheaf ofSymPow.symMap, then-th symmetric power off.
theorem tildeSymmetricPowerIso_natural_symMap (n : ℕ)
(A : SheafOfModules.TensorExteriorSymmetricAlgebras
(Opens.grothendieckTopology ↥(Spec R)) (tilde M))
(B : SheafOfModules.TensorExteriorSymmetricAlgebras
(Opens.grothendieckTopology ↥(Spec R)) (tilde N)) :
tilde.map (ModuleCat.ofHom (R := R)
(X := ModuleCat.of R (SymPow.symmetricPower n R M))
(Y := ModuleCat.of R (SymPow.symmetricPower n R N)) (SymPow.symMap n f.hom)) ≫
(tildeSymmetricPowerIso N B n).hom =
(tildeSymmetricPowerIso M A n).hom ≫ (symmetricAlgebraHom f A B).app (n : ℤ)
AlgebraicGeometry.InternalHomTildeIso, a structure in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Modules/AffineInternalHom.lean, line 104. The attribute's comment: “internal_hom”.
An isomorphism from an affine internal Hom to the associated sheaf of the module of linear maps, together with the characterization that makes the isomorphism canonical.
The inverse sends the global section associated to
f : M ⟶ Nto the section of the internal Hom represented by the sheaf morphismtilde.map f. This is the content of [Stacks, Tag 01I8].
structure InternalHomTildeIso (R : CommRingCat.{u}) (M N : ModuleCat.{u} R)
(H : SheafHom (Spec R).sheaf (tilde M) (tilde N))
AlgebraicGeometry.internalHomTildeIso, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Modules/AffineInternalHom.lean, line 121. The attribute's comment: “internal_hom”. References: EGA I (1.3.12), “(ii)”.
Stacks Project, Tag 01I8 (
internal_hom).Let
MandNbe modules over a commutative ringR, withMfinitely presented. The internal Hom between the associated sheaves ofMandNonSpec Ris canonically isomorphic to the sheaf associated to theR-moduleHom_R(M, N).
noncomputable def internalHomTildeIso (R : CommRingCat.{u})
(M N : ModuleCat.{u} R)
[Module.FinitePresentation R M]
(H : SheafHom (Spec R).sheaf (tilde M) (tilde N)) :
InternalHomTildeIso R M N H
AlgebraicGeometry.internalHomTildeIsoIso, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Modules/AffineInternalHom.lean, line 156. The attribute's comment: “internal_hom”.
Stacks Project, Tag 01I8 (
internal_hom).The affine internal-Hom isomorphism itself: for
Mfinitely presented, the internal Hom of the associated sheaves ofMandNonSpec Ris isomorphic to the associated sheaf of theR-moduleHom_R(M, N). This is theisofield ofinternalHomTildeIso, named so that the isomorphism asserted by the tag is readable as a type. It is canonical byinternalHomTildeIsoIso_inv_app_toOpen.
noncomputable def internalHomTildeIsoIso (R : CommRingCat.{u}) (M N : ModuleCat.{u} R)
[Module.FinitePresentation R M]
(H : SheafHom (Spec R).sheaf (tilde M) (tilde N)) :
H.obj ≅ tilde (ModuleCat.of R (M ⟶ N))
AlgebraicGeometry.internalHomTildeIsoIso_inv_app_toOpen, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Modules/AffineInternalHom.lean, line 166. The attribute's comment: “internal_hom”.
Stacks Project, Tag 01I8 (
internal_hom). The affine internal-Hom isomorphism is canonical: its inverse sends the global section associated tof : M ⟶ Nto the section of the internal Hom represented by the sheaf morphismtilde.map f.
theorem internalHomTildeIsoIso_inv_app_toOpen (R : CommRingCat.{u}) (M N : ModuleCat.{u} R)
[Module.FinitePresentation R M]
(H : SheafHom (Spec R).sheaf (tilde M) (tilde N)) (f : M ⟶ N) :
H.sectionsEquiv ⊤
((internalHomTildeIsoIso R M N H).inv.val.app (op ⊤)
(tilde.toOpen (ModuleCat.of R (M ⟶ N)) ⊤ f)) =
(tilde.map f).over ⊤
AlgebraicGeometry.internalHomTildeIso_natural_right, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Modules/AffineInternalHomNatural.lean, line 115. The attribute's comment: “internal_hom”.
The affine internal-Hom comparison is natural in the target module: a morphism of internal Homs exhibited as post-composition with
tilde.map uis carried to the associated sheaf of post-composition withu.
theorem internalHomTildeIso_natural_right (R : CommRingCat.{u}) (M N N' : ModuleCat.{u} R)
[Module.FinitePresentation R M]
(H : SheafHom (Spec R).sheaf (tilde M) (tilde N))
(H' : SheafHom (Spec R).sheaf (tilde M) (tilde N'))
(u : N ⟶ N') (m : H.obj ⟶ H'.obj)
(hm : SheafHom.IsPostcomp (Spec R).sheaf (tilde.map u) H H' m) :
m ≫ (internalHomTildeIso R M N' H').iso.hom =
(internalHomTildeIso R M N H).iso.hom ≫ tilde.map (ModuleCat.homPostcomp M u)
AlgebraicGeometry.internalHomTildeIso_natural_left, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Modules/AffineInternalHomNatural.lean, line 150. The attribute's comment: “internal_hom”.
The affine internal-Hom comparison is contravariantly natural in the source module: a morphism of internal Homs exhibited as pre-composition with
tilde.map βis carried to the associated sheaf of pre-composition withβ.
theorem internalHomTildeIso_natural_left (R : CommRingCat.{u}) (M M' N : ModuleCat.{u} R)
[Module.FinitePresentation R M] [Module.FinitePresentation R M']
(H : SheafHom (Spec R).sheaf (tilde M) (tilde N))
(H' : SheafHom (Spec R).sheaf (tilde M') (tilde N))
(β : M' ⟶ M) (m : H.obj ⟶ H'.obj)
(hm : SheafHom.IsPrecomp (Spec R).sheaf (tilde.map β) H H' m) :
m ≫ (internalHomTildeIso R M' N H').iso.hom =
(internalHomTildeIso R M N H).iso.hom ≫ tilde.map (ModuleCat.homPrecomp N β)
AlgebraicGeometry.tildeTensorPowerIso, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Modules/TildeTensorPower.lean, line 168. The attribute's comment: “tensor_power”.
Stacks Project, Tag 01I8 (tensor-power part). The associated sheaf of a tensor power is canonically the tensor power of the associated sheaf.
noncomputable def tildeTensorPowerIso (R : CommRingCat.{u}) (M : ModuleCat.{u} R) :
(n : ℕ) → (tilde (ModuleCat.of R (TensorPower R n M)) ≅ specTildeTensorPower R M n)
AlgebraicGeometry.tildeTensorPowerIso_hom_tprod, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Modules/TildeTensorPower.lean, line 344. The attribute's comment: “tensor_power”.
Stacks Project, Tag 01I8 (tensor-power part). The canonical affine tensor-power comparison carries a pure tensor to the tensor product of its associated global sections.
theorem tildeTensorPowerIso_hom_tprod (R : CommRingCat.{u}) (M : ModuleCat.{u} R) (n : ℕ)
(a : Fin n → M) :
(tildeTensorPowerIso R M n).hom.val.app (specGlobalOpen R)
((tilde.toOpen (ModuleCat.of R (TensorPower R n M)) ⊤).hom
(PiTensorProduct.tprod R a)) =
tildeTensorPowerSection R M n a
AlgebraicGeometry.tildeTensorPowerIso_natural, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Modules/TildeTensorPower.lean, line 554. The attribute's comment: “tensor_power”.
Stacks Project, Tag 01I8 (tensor-power part). Naturality of the affine tensor-power comparison. The right-hand map is the degree-
ncomponent of a unital graded-algebra map extendingtilde.map fon degree-one generators; the universal property of the tensor algebra makes such a map unique, so quantifying over it is a statement about the canonical one.
theorem tildeTensorPowerIso_natural
(hg : (specTildeAlgebras R M).tensorGenerator ≫ g.app 1 =
tilde.map f ≫ (specTildeAlgebras R N).tensorGenerator) (n : ℕ) :
tilde.map (ModuleCat.ofHom (PiTensorProduct.map (fun _ : Fin n => f.hom))) ≫
(tildeTensorPowerIso R N n).hom =
(tildeTensorPowerIso R M n).hom ≫ ((specTildeAlgebras R M).tensorPieceIso n).inv ≫
g.app (n : ℤ) ≫ ((specTildeAlgebras R N).tensorPieceIso n).hom
AlgebraicGeometry.tildeTensorPowerIso_natural_piTensorProductMap, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Modules/TildeTensorPower.lean, line 592. The attribute's comment: “tensor_power”.
Stacks Project, Tag 01I8 (tensor-power part). Naturality of the affine tensor-power comparison against the canonical induced map, rather than against a hypothesised one: this is
tildeTensorPowerIso_naturalinstantiated atspecTildeTensorAlgebraMap, the unital graded-algebra map the universal property of the tensor algebra provides. The left-hand map is the associated sheaf ofPiTensorProduct.map, then-fold tensor power off.
theorem tildeTensorPowerIso_natural_piTensorProductMap (n : ℕ) :
tilde.map (ModuleCat.ofHom (PiTensorProduct.map (fun _ : Fin n => f.hom))) ≫
(tildeTensorPowerIso R N n).hom =
(tildeTensorPowerIso R M n).hom ≫ ((specTildeAlgebras R M).tensorPieceIso n).inv ≫
(specTildeTensorAlgebraMap R f).app (n : ℤ) ≫
((specTildeAlgebras R N).tensorPieceIso n).hom
AlgebraicGeometry.tildeTensorIso, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Schemes/ZariskiAndSeparation/AffineTensor.lean, line 407. The attribute's comment: “tensor_product”. References: EGA I (1.3.12), “(i)”.
For modules
MandNoverR, there is a canonical isomorphism(M ⊗[R] N)~ ≅ M~ ⊗_{𝒪_(Spec R)} N~.
noncomputable def tildeTensorIso (R : CommRingCat.{u})
(M N : ModuleCat.{u} R) :
tilde (M ⊗ N) ≅
specTensorSheaf R (tilde M) (tilde N)
AlgebraicGeometry.tildeTensorIso_hom_tmul, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Schemes/ZariskiAndSeparation/AffineTensor.lean, line 417. The attribute's comment: “tensor_product”.
The canonical isomorphism sends a pure tensor, under the tilde--global-sections adjunction, to the section obtained by tensoring the two canonical global sections and applying the sheafification unit.
theorem tildeTensorIso_hom_tmul (R : CommRingCat.{u})
(M N : ModuleCat.{u} R) (m : M) (n : N) :
(((tilde.adjunction (R := R)).homEquiv (M ⊗ N)
(specTensorSheaf R (tilde M) (tilde N))) (tildeTensorIso R M N).hom).hom
(TensorProduct.tmul R m n) =
((Stacks.SheafOfModules.TensorSheafification.toSheafify (Spec R).presheaf
(isSheaf_specStructureRingPresheaf R)
(specTensorPresheaf R (tilde M) (tilde N))).app (.op ⊤)).hom
(TensorProduct.tmul ((Spec R).presheaf.obj (.op ⊤))
((tilde.toOpen M ⊤).hom m) ((tilde.toOpen N ⊤).hom n))
AlgebraicGeometry.tildeTensorIso_eq_of_hom_tmul, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Schemes/ZariskiAndSeparation/AffineTensor.lean, line 433. The attribute's comment: “tensor_product”.
The comparison is canonical: it is the only isomorphism
(M ⊗ N)~ ≅ M~ ⊗ N~satisfying the pure-tensor equationtildeTensorIso_hom_tmul, sotildeTensorIsodoes not depend on the choiceClassical.choosemakes to produce it.
theorem tildeTensorIso_eq_of_hom_tmul (R : CommRingCat.{u})
(M N : ModuleCat.{u} R)
(e : tilde (M ⊗ N) ≅ specTensorSheaf R (tilde M) (tilde N))
(he : ∀ (m : M) (n : N),
(((tilde.adjunction (R := R)).homEquiv (M ⊗ N)
(specTensorSheaf R (tilde M) (tilde N))) e.hom).hom
(TensorProduct.tmul R m n) =
((Stacks.SheafOfModules.TensorSheafification.toSheafify (Spec R).presheaf
(isSheaf_specStructureRingPresheaf R)
(specTensorPresheaf R (tilde M) (tilde N))).app (.op ⊤)).hom
(TensorProduct.tmul ((Spec R).presheaf.obj (.op ⊤))
((tilde.toOpen M ⊤).hom m) ((tilde.toOpen N ⊤).hom n))) :
e = tildeTensorIso R M N
AlgebraicGeometry.tildeTensorIso_natural, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Schemes/ZariskiAndSeparation/AffineTensor.lean, line 455. The attribute's comment: “tensor_product”.
The canonical tensor comparison is natural in both modules.
theorem tildeTensorIso_natural (R : CommRingCat.{u})
{M M' N N' : ModuleCat.{u} R} (f : M ⟶ M') (g : N ⟶ N') :
tilde.map (f ⊗ₘ g) ≫ (tildeTensorIso R M' N').hom =
(tildeTensorIso R M N).hom ≫ tildeTensorSheafMap R f g
Stacks.AssociatedSheaf.associatedSheafTensorIso, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/Topology/Sheaves/Modules/AssociatedSheaf/Tensor.lean, line 141. The attribute's comment: “construction (3) commutes with the tensor product, on an arbitrary ringed space”.
Construction (3) carries the tensor product of
R-modules to the tensor product of sheaves of modules:ℱ_{M ⊗_R N} ≅ ℱ_M ⊗_{𝒪_X} ℱ_N, on an arbitrary ringed space.This is the clause of Tag 01I8 that the determinant argument of Tag 0FJN needs on the trivialising open of Tag 08BL rather than on an affine scheme.
def associatedSheafTensorIso (M N : ModuleCat.{u} R) :
associatedSheaf X α (M ⊗ N) ≅
((Stacks.SheafOfModules.Tensor.sheafTensor
⟨X.presheaf, Presheaf.isSheaf_of_isSheaf_comp _ X.presheaf
(forget₂ CommRingCat RingCat) (structureSheafRing X).property⟩).obj
(associatedSheaf X α M)).obj (associatedSheaf X α N)
Tag 01I9, a lemma
Tag 01I9 in the Stacks Project.
Stacks.AlgebraicGeometry.AffineBaseChange.tilde_map_comp_pushforwardTildeIso_inv, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/AffineBaseChange/StructureSheaf.lean, line 327. The attribute's comment: “affine_pushforward_tilde at the ring itself: the comparison carries the structure map of φ to the structure morphism of Spec φ”.
The associated sheaf of a map of
R-modulesR ⟶ Ssending1to1, followed by the inverse of the comparison identifying the direct image alongSpec φof the associated sheaf ofSwith the associated sheaf ofSrestricted to anR-module, is the structure morphism𝒪_{Spec R} ⟶ (Spec φ)_* 𝒪_{Spec S}.
theorem tilde_map_comp_pushforwardTildeIso_inv
(u : ModuleCat.of R R ⟶ (ModuleCat.restrictScalars φ.hom).obj (ModuleCat.of S S))
(hu : u.hom (1 : R) = (1 : S)) :
(tilde.functor R).map u ≫ ((pushforwardTildeIso R S φ).app (ModuleCat.of S S)).inv =
structureUnitHom (Spec.map φ)
AlgebraicGeometry.pullbackTildeIso, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Scheme/QuasiCoherent/AffineTilde.lean, line 87. The attribute's comment: “affine_pullback_tilde”.
Pullback along the map of affine schemes induced by
f : R ⟶ Scarries the associated sheaf of anR-module to the associated sheaf of its extension of scalars toS, naturally in the module.
public noncomputable def pullbackTildeIso (R S : CommRingCat.{u}) (f : R ⟶ S) :
tilde.functor R ⋙ Scheme.Modules.pullback (Spec.map f) ≅
ModuleCat.extendScalars f.hom ⋙ tilde.functor S
AlgebraicGeometry.pullbackTildeIso_hom_app_unit_toOpen, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Scheme/QuasiCoherent/AffineTilde.lean, line 99. The attribute's comment: “affine_pullback_tilde”.
The canonical affine pullback comparison sends the pullback of the global section represented by
mto the global section represented by1 ⊗ m. Here the first map is the pullback--pushforward adjunction unit.
public theorem pullbackTildeIso_hom_app_unit_toOpen
(R S : CommRingCat.{u}) (f : R ⟶ S) (M : ModuleCat R) (m : M) :
((pullbackTildeIso R S f).hom.app M).val.app (.op ⊤)
(((Scheme.Modules.pullbackPushforwardAdjunction (Spec.map f)).unit.app
(tilde M)).val.app (.op ⊤) (tilde.toOpen M ⊤ m)) =
tilde.toOpen ((ModuleCat.extendScalars f.hom).obj M) ⊤
((1 : S) ⊗ₜ[R, f.hom] m)
AlgebraicGeometry.pushforwardTildeIso, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Scheme/QuasiCoherent/AffineTilde.lean, line 155. The attribute's comment: “affine_pushforward_tilde”.
Pushforward along the map of affine schemes induced by
φ : R ⟶ Scarries the associated sheaf of anS-module to the associated sheaf of its restriction of scalars alongφ, naturally in the module.
public noncomputable def pushforwardTildeIso (R S : CommRingCat.{u}) (φ : R ⟶ S) :
tilde.functor S ⋙ Scheme.Modules.pushforward (Spec.map φ) ≅
ModuleCat.restrictScalars φ.hom ⋙ tilde.functor R
AlgebraicGeometry.pushforwardTildeIso_hom_app_toOpen, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Scheme/QuasiCoherent/AffineTilde.lean, line 193. The attribute's comment: “affine_pushforward_tilde”.
The canonical affine pushforward comparison is normalized by the canonical identifications of a module with the global sections of its associated sheaf: its component at
Nsends the global section represented bynonSpec Sto the global section represented by the same element of the restrictedR-module onSpec R.
public theorem pushforwardTildeIso_hom_app_toOpen
(R S : CommRingCat.{u}) (φ : R ⟶ S) (N : ModuleCat S) (n : N) :
((pushforwardTildeIso R S φ).hom.app N).val.app (Opposite.op (⊤ : (Spec R).Opens))
(tilde.toOpen N (⊤ : (Spec S).Opens) n) =
tilde.toOpen ((ModuleCat.restrictScalars φ.hom).obj N) (⊤ : (Spec R).Opens) n
Deformation.Artin.SectionsSheaf.tildePullbackIso_id_hom_app, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/Deformation/Artin/Obstruction/SectionsFirstFactorIdentity.lean, line 447. The attribute's comment: “the affine base-change comparison at the identity ring map: the pullback of the associated sheaf along Spec of the identity ring map is the identity law for pullback followed by the associated sheaf of m ↦ 1 ⊗ m”.
The affine base-change comparison of [Stacks, Tag 01I9] at the identity ring map. The isomorphism
(Spec (𝟙 A))^* M̃ ≅ (A ⊗_A M)~is the identity law for pullback followed by the associated sheaf of the unitm ↦ 1 ⊗ mof extension of scalars.Neither factor is an identity:
A ⊗_A Mis notMand(Spec (𝟙 A))^*is an abstract left adjoint. What the statement says is that the comparison, which is built by uniqueness of left adjoints and so has no formula, is the composite of the two canonical maps that are available.The proof is the uniqueness itself:
CategoryTheory.Adjunction.unit_leftAdjointUniq_hom_appevaluates the comparison after the unit oftildePullbackAdjunction (𝟙 A), andeq_of_unit_compsays that this determines a morphism out of(tilde.functor A ⋙ (Spec (𝟙 A))^*).obj M; the four lemmas above evaluate the right-hand side there.
theorem tildePullbackIso_id_hom_app (M : ModuleCat.{u} A) :
(tildePullbackIso (𝟙 A)).hom.app M =
((Scheme.Modules.pullbackCongr (Spec.map_id A)).hom.app ((tilde.functor A).obj M) ≫
(Scheme.Modules.pullbackId (Spec A)).hom.app ((tilde.functor A).obj M)) ≫
(tilde.functor A).map (extendUnitId M)
Tag 01IA, a lemma
Tag 01IA in the Stacks Project.
Declarations registered for the tag:
AlgebraicGeometry.Scheme.Modules.isIso_fromTildeΓ_of_isQuasicoherentregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch26.lean, line 151 (StacksFrontier). References: EGA I (1.4.1), “c ⇒ a for V = Spec A”; EGA I (1.4.3), “special case”; EGA I (4.1.1), “affine case”; EGA I (10.10.1), “Representation clause”; EGA III (6.4.1), “special case”; SGA 6 II (2.4.3), “c), special case”.
Tag 01IB, a lemma
Tag 01IB in the Stacks Project.
Declarations registered for the tag:
AlgebraicGeometry.tildeEquivregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch26.lean, line 157 (StacksFrontier). References: EGA I (1.4.3), “special case”; EGA II (1.4.3), “special case”.
Tag 01IC, a lemma
Tag 01IC in the Stacks Project.
Stacks.DerivedQCoh.abelianQuasiCoherent, an instance in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/DerivedQCoh/QuasiCoherentAbelian.lean, line 121. The attribute's comment: “abelian category”.
Stacks Project, Tag 01IC (abelian category). The quasi-coherent modules on
Spec Rform an abelian category, kernels, cokernels and finite products being computed as in all𝒪_{Spec R}-modules.
instance abelianQuasiCoherent :
Abelian (SheafOfModules.isQuasicoherent (Spec R).ringCatSheaf).FullSubcategory
AlgebraicGeometry.Scheme.Modules.isQuasicoherent_cokernel, an instance in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Scheme/QuasiCoherent/Affine.lean, line 85. The attribute's comment: “cokernel”. References: EGA I (4.1.1), “affine, cokernel”.
Stacks Project, Tag 01IC (cokernel). The cokernel of a morphism between quasi-coherent modules on an affine scheme is quasi-coherent.
public instance isQuasicoherent_cokernel {X : Scheme.{u}} [IsAffine X]
{M N : X.Modules} [M.IsQuasicoherent] [N.IsQuasicoherent] (f : M ⟶ N) :
(cokernel f).IsQuasicoherent
Stacks.AffineTilde.isQuasicoherent_kernel, an instance in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/Homology/PseudoCoherentRelative/TildeExact.lean, line 317. The attribute's comment: “kernel”. References: EGA I (4.1.1), “affine, kernel”.
Stacks Project, Tag 01IC (kernel). The kernel of a morphism of quasi-coherent modules on an affine scheme is quasi-coherent. The cokernel half is
AlgebraicGeometry.Scheme.Modules.isQuasicoherent_cokernel.
instance isQuasicoherent_kernel {X : Scheme.{u}} [IsAffine X] {M N : X.Modules}
[M.IsQuasicoherent] [N.IsQuasicoherent] (f : M ⟶ N) : (kernel f).IsQuasicoherent
Declarations registered for the tag:
Stacks.AlgebraicGeometry.QcohLimits.isQuasicoherent_kernel, declared in the repository, registered withadd_to_stacksin StacksFrontier/AlgebraicGeometry/Scheme/QuasiCoherent/General.lean, line 25 (StacksFrontier): “kernel”.
Tag 01ID, a lemma
Tag 01ID in the Stacks Project.
Stacks.AlgebraicGeometry.QuasicoherentColimits.isQuasicoherent_of_isColimit_spec, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/AffineQcohPushforward/Colimits.lean, line 71. The attribute's comment: “colimits”.
On a spectrum, the point of a colimit cocone of quasi-coherent modules is quasi-coherent.
theorem isQuasicoherent_of_isColimit_spec (R : CommRingCat.{u})
[HasColimitsOfShape K (ModuleCat.{u} R)] {D : K ⥤ (Spec R).Modules}
(hD : ∀ k, (D.obj k).IsQuasicoherent) {c : Cocone D} (hc : IsColimit c) :
c.pt.IsQuasicoherent
Stacks.AlgebraicGeometry.QuasicoherentColimits.isQuasicoherent_sigma, an instance in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/AffineQcohPushforward/Colimits.lean, line 170. The attribute's comment: “direct sums”.
A coproduct of quasi-coherent modules is quasi-coherent.
instance isQuasicoherent_sigma {X : Scheme.{u}} {I : Type u} (M : I → X.Modules)
[∀ i, (M i).IsQuasicoherent] : (∐ M).IsQuasicoherent
Tag 01IE, a lemma
Tag 01IE in the Stacks Project.
Stacks.AlgebraicGeometry.QcohExtension.isQuasicoherent_X₂_of_shortExact_spec, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/QcohShortExact/QcohExtension.lean, line 146. References: EGA III (1.4.17), “affine case”.
[Stacks, Tag 01IE], the extension case. If the two outer terms of a short exact sequence of
𝒪_{Spec R}-modules are quasi-coherent then so is the middle one.
theorem isQuasicoherent_X₂_of_shortExact_spec (S : ShortComplex (Spec R).Modules)
(hS : S.ShortExact) (h₁ : S.X₁.IsQuasicoherent) (h₃ : S.X₃.IsQuasicoherent) :
S.X₂.IsQuasicoherent
Stacks.AlgebraicGeometry.QcohExtension.isQuasicoherent_X₁_of_shortExact_spec, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/QcohShortExact/QcohExtension.lean, line 168.
[Stacks, Tag 01IE], the kernel case. If the last two terms of a short exact sequence of
𝒪_{Spec R}-modules are quasi-coherent then so is the first: it is the kernel of the last map.
theorem isQuasicoherent_X₁_of_shortExact_spec (S : ShortComplex (Spec R).Modules)
(hS : S.ShortExact) (h₂ : S.X₂.IsQuasicoherent) (h₃ : S.X₃.IsQuasicoherent) :
S.X₁.IsQuasicoherent
Stacks.AlgebraicGeometry.QcohExtension.isQuasicoherent_X₃_of_shortExact_spec, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/QcohShortExact/QcohExtension.lean, line 181.
[Stacks, Tag 01IE], the cokernel case. If the first two terms of a short exact sequence of
𝒪_{Spec R}-modules are quasi-coherent then so is the last: it is the cokernel of the first map, and [Stacks, Tag 01IC] applies becauseSpec Ris affine.
theorem isQuasicoherent_X₃_of_shortExact_spec (S : ShortComplex (Spec R).Modules)
(hS : S.ShortExact) (h₁ : S.X₁.IsQuasicoherent) (h₂ : S.X₂.IsQuasicoherent) :
S.X₃.IsQuasicoherent
Stacks.AlgebraicGeometry.QuasicoherentExtension.isQuasicoherent_left_of_shortExact, a lemma in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/QuasicoherentExtension/Basic.lean, line 157. The attribute's comment: “left term”.
In a short exact sequence of modules on an affine scheme, the left term is quasi-coherent if the middle and right terms are.
lemma isQuasicoherent_left_of_shortExact {X : Scheme.{u}} [IsAffine X]
(S : ShortComplex X.Modules) (hS : S.ShortExact)
[S.X₂.IsQuasicoherent] [S.X₃.IsQuasicoherent] :
S.X₁.IsQuasicoherent
Stacks.AlgebraicGeometry.QuasicoherentExtension.isQuasicoherent_middle_of_shortExact, a lemma in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/QuasicoherentExtension/Basic.lean, line 168. The attribute's comment: “middle term”.
In a short exact sequence of modules on an affine scheme, the middle term is quasi-coherent if both outer terms are.
lemma isQuasicoherent_middle_of_shortExact {X : Scheme.{u}} [IsAffine X]
(S : ShortComplex X.Modules) (hS : S.ShortExact)
[S.X₁.IsQuasicoherent] [S.X₃.IsQuasicoherent] :
S.X₂.IsQuasicoherent
Stacks.AlgebraicGeometry.QuasicoherentExtension.isQuasicoherent_right_of_shortExact, a lemma in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/QuasicoherentExtension/Basic.lean, line 190. The attribute's comment: “right term”.
In a short exact sequence of modules on an affine scheme, the right term is quasi-coherent if the left and middle terms are.
lemma isQuasicoherent_right_of_shortExact {X : Scheme.{u}} [IsAffine X]
(S : ShortComplex X.Modules) (hS : S.ShortExact)
[S.X₁.IsQuasicoherent] [S.X₂.IsQuasicoherent] :
S.X₃.IsQuasicoherent
Sources
Section26.8 Closed subspaces of affine schemes#
Section 26.8 of the Stacks Project, Tag 01IF. 2 tags here are carried by 7 declarations of the repository (all in StacksFrontier), quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 01IG, an example
Tag 01IG in the Stacks Project.
AlgebraicGeometry.quotientPrime_comap, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Scheme/Immersion/Quotient.lean, line 70. The attribute's comment: “quotient_stalk_map”.
Stacks Project, Tag 01IG. The point
p / IofSpec(R / I)maps to the pointpofSpec R.
public theorem quotientPrime_comap {R : Type u} [CommRing R] (I p : Ideal R) [p.IsPrime]
(hIp : I ≤ p) :
PrimeSpectrum.comap (Ideal.Quotient.mk I) (quotientPrime I p hIp) =
(⟨p, inferInstance⟩ : PrimeSpectrum R)
AlgebraicGeometry.stalkMap_quotient_surjective, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Scheme/Immersion/Quotient.lean, line 103. The attribute's comment: “quotient_stalk_map”.
Stacks Project, Tag 01IG. The map on stalks induced by
Spec(R / I) → Spec Ratp / Iis surjective.
public theorem stalkMap_quotient_surjective {R : Type u} [CommRing R]
(I p : Ideal R) [p.IsPrime] (hIp : I ≤ p) :
Function.Surjective
((Spec.map (CommRingCat.ofHom (Ideal.Quotient.mk I))).stalkMap
(quotientPrime I p hIp)).hom
AlgebraicGeometry.stalkMap_quotient_ker, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Scheme/Immersion/Quotient.lean, line 124. The attribute's comment: “quotient_stalk_map”.
Stacks Project, Tag 01IG. The kernel of the map on stalks induced by
Spec(R / I) → Spec Ratp / Iis the extended idealI R_p.
public theorem stalkMap_quotient_ker {R : Type u} [CommRing R]
(I p : Ideal R) [p.IsPrime] (hIp : I ≤ p) :
RingHom.ker
((Spec.map (CommRingCat.ofHom (Ideal.Quotient.mk I))).stalkMap
(quotientPrime I p hIp)).hom =
Ideal.map
(StructureSheaf.toStalk R
(PrimeSpectrum.comap (Ideal.Quotient.mk I) (quotientPrime I p hIp))).hom I
Stacks.ClosedImmersion.isClosedImmersion_specMap_quotientMk, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Scheme/Immersion/QuotientClosedImmersion.lean, line 84. The attribute's comment: “closed_immersion_of_locally_ringed_spaces”.
For an ideal
Iof a ringRthe morphismSpec (R ⧸ I) ⟶ Spec Ris a closed immersion of locally ringed spaces, in the sense of Definition 01HK: a closed embedding on spaces whose structure-sheaf map is surjective with kernel locally generated by sections.
theorem isClosedImmersion_specMap_quotientMk :
IsClosedImmersion
(Spec.map (CommRingCat.ofHom (Ideal.Quotient.mk I))).toLRSHom.toShHom
Stacks.ClosedImmersion.isClosedEmbedding_specMap_quotientMk, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Scheme/Immersion/QuotientClosedImmersion.lean, line 95. The attribute's comment: “closed_embedding_onto_closed_subset”.
The map
Spec (R ⧸ I) → Spec Ris a homeomorphism ofSpec (R ⧸ I)onto a closed subset ofSpec R.
theorem isClosedEmbedding_specMap_quotientMk :
Topology.IsClosedEmbedding ⇑(Spec.map (CommRingCat.ofHom (Ideal.Quotient.mk I))).base
Stacks.ClosedImmersion.existsUnique_iso_tildeSubspace, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Scheme/Immersion/QuotientClosedImmersion.lean, line 180. The attribute's comment: “iso_closed_subspace_of_tilde”.
Spec (R ⧸ I)is the closed subspace ofSpec Rcut out by the quasi-coherent sheaf of idealsI^~: there is a unique isomorphism of locally ringed spaces fromSpec (R ⧸ I)to that closed subspace commuting with the two morphisms toSpec R.
theorem existsUnique_iso_tildeSubspace :
∃! t : (Spec (CommRingCat.of (↑R ⧸ I))).toLocallyRingedSpace ≅ tildeSubspace I,
t.hom ≫ tildeSubspaceInclusion I =
(Spec.map (CommRingCat.ofHom (Ideal.Quotient.mk I))).toLRSHom
Tag 01IH, a lemma
Tag 01IH in the Stacks Project.
Stacks.ClosedImmersion.existsUnique_ideal_iso_quotientSpec, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/ClosedImmersion/IntoAffine.lean, line 230.
A closed immersion of locally ringed spaces into
Spec Ris, overSpec R, the spectrum of the quotient by a unique ideal ofR.
theorem existsUnique_ideal_iso_quotientSpec {Z : LocallyRingedSpace.{u}}
(i : Z ⟶ (Spec R).toLocallyRingedSpace) [IsClosedImmersion i.toShHom] :
∃! I : Ideal ↑R, ∃ e : Z ≅ (Spec (CommRingCat.of (↑R ⧸ I))).toLocallyRingedSpace,
i = e.hom ≫ (Spec.map (CommRingCat.ofHom (Ideal.Quotient.mk I))).toLRSHom
Sources
Section26.9 Schemes#
Section 26.9 of the Stacks Project, Tag 01II. 3 tags here are carried by 11 declarations of the repository (all in StacksFrontier) and 5 registered declarations, quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 01IJ, a definition
Tag 01IJ in the Stacks Project.
Declarations registered for the tag:
AlgebraicGeometry.Schemeregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch26.lean, line 159 (StacksFrontier): “a scheme: a locally ringed space locally isomorphic to an affine scheme”. References: EGA I (2.1.2); EGA I (10.4.2), “special case”; SGA 2 XIV (1.0); SGA 3 IV (4.7); SGA 4 VII (1.1); SGA 4 XVII (0.7); SGA 6 II (3.0).AlgebraicGeometry.Scheme.Homregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch26.lean, line 161 (StacksFrontier): “a morphism of schemes: a morphism of locally ringed spaces”. References: EGA I (2.2.1); EGA I (2.2.2); EGA I (10.4.5), “special case”.AlgebraicGeometry.Scheme.instCategoryregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch26.lean, line 163 (StacksFrontier): “the category of schemes”. References: EGA I (2.2.2); SGA 4 VII (1.1).
Tag 01IK, a lemma
Tag 01IK in the Stacks Project.
Declarations registered for the tag:
AlgebraicGeometry.PresheafedSpace.IsOpenImmersion.toSchemeregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch26.lean, line 165 (StacksFrontier): “the source of an open immersion into a scheme is a scheme”.AlgebraicGeometry.Scheme.Opens.toSchemeregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch26.lean, line 167 (StacksFrontier): “an open subspace of a scheme is a scheme”. References: EGA I (10.4.4), “special case”; EGA I (2.1.7); EGA I (2.2.10); EGA I (2.2.3); EGA I (4.1.3), “special case”; EGA IV (4.5.3), “partial”; EGA IV (4.9.6), “partial”; EGA IV (9.6.7); EGA IV (9.7.11), “more general”; SGA 2 XII (4.1).
Tag 01IL, an example
Tag 01IL in the Stacks Project.
AlgebraicGeometry.PuncturedAffinePlane.xOpen_sup_yOpen, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Scheme/Affine/PuncturedPlane.lean, line 229. The attribute's comment: “affine_open_cover”.
The two coordinate standard opens cover the punctured affine plane.
theorem xOpen_sup_yOpen : xOpen S ⊔ yOpen S = ⊤
AlgebraicGeometry.PuncturedAffinePlane.isAffineOpen_xOpen, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Scheme/Affine/PuncturedPlane.lean, line 251. The attribute's comment: “affine_open_cover”.
The first-coordinate member of the standard cover is affine.
theorem isAffineOpen_xOpen : IsAffineOpen (xOpen S)
AlgebraicGeometry.PuncturedAffinePlane.isAffineOpen_yOpen, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Scheme/Affine/PuncturedPlane.lean, line 256. The attribute's comment: “affine_open_cover”.
The second-coordinate member of the standard cover is affine.
theorem isAffineOpen_yOpen : IsAffineOpen (yOpen S)
AlgebraicGeometry.PuncturedAffinePlane.xOpen_inf_yOpen, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Scheme/Affine/PuncturedPlane.lean, line 261. The attribute's comment: “affine_open_cover”.
The intersection of the two members of the cover is the product standard open.
theorem xOpen_inf_yOpen : xOpen S ⊓ yOpen S = xyOpen S
AlgebraicGeometry.PuncturedAffinePlane.toScheme_iso_specAway_x, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Scheme/Affine/PuncturedPlane.lean, line 267. The attribute's comment: “affine_open_cover”.
The first-coordinate standard open has coordinate ring
k[x,y,1/x].
theorem toScheme_iso_specAway_x :
Nonempty ((xOpen S).toScheme ≅
Spec (.of (Localization.Away (MvPolynomial.X (0 : Fin 2) : S.R))))
AlgebraicGeometry.PuncturedAffinePlane.toScheme_iso_specAway_y, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Scheme/Affine/PuncturedPlane.lean, line 274. The attribute's comment: “affine_open_cover”.
The second-coordinate standard open has coordinate ring
k[x,y,1/y].
theorem toScheme_iso_specAway_y :
Nonempty ((yOpen S).toScheme ≅
Spec (.of (Localization.Away (MvPolynomial.X (1 : Fin 2) : S.R))))
AlgebraicGeometry.PuncturedAffinePlane.toScheme_iso_specAway_xy, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Scheme/Affine/PuncturedPlane.lean, line 281. The attribute's comment: “affine_open_cover”.
The intersection standard open has coordinate ring
k[x,y,1/(xy)].
theorem toScheme_iso_specAway_xy :
Nonempty ((xyOpen S).toScheme ≅ Spec (.of (Localization.Away
(MvPolynomial.X (0 : Fin 2) * MvPolynomial.X (1 : Fin 2) : S.R))))
AlgebraicGeometry.not_isAffine_puncturedScheme, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Scheme/Affine/PuncturedPlaneNotAffine.lean, line 40. The attribute's comment: “punctured_plane_not_affine”.
The affine plane with its origin removed is not affine.
theorem not_isAffine_puncturedScheme (S : PuncturedAffinePlane.{u}) :
¬ IsAffine S.puncturedScheme
AlgebraicGeometry.restrictionPair_injective, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Scheme/Affine/PuncturedPlaneSections.lean, line 344. The attribute's comment: “sections_exact_sequence”.
Stacks Project, Tag 01IL, sections exact sequence. Restriction of global sections to the two standard affine opens is injective.
theorem restrictionPair_injective (S : PuncturedAffinePlane.{u}) :
Function.Injective (restrictionPair S)
AlgebraicGeometry.restrictionPair_exact, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Scheme/Affine/PuncturedPlaneSections.lean, line 431. The attribute's comment: “sections_exact_sequence”.
Stacks Project, Tag 01IL, sections exact sequence. The image of global sections in the product of the two localizations is the kernel of the difference of restrictions to the intersection.
theorem restrictionPair_exact (S : PuncturedAffinePlane.{u}) :
Function.Exact (restrictionPair S) (localizationDifference S)
AlgebraicGeometry.isIso_coordinateRingToGlobalSections, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Scheme/Affine/PuncturedPlaneSections.lean, line 564. The attribute's comment: “punctured_plane_global_sections”.
The canonical homomorphism from the coordinate ring of the affine plane to the global sections of the punctured affine plane is an isomorphism.
theorem isIso_coordinateRingToGlobalSections (S : PuncturedAffinePlane.{u}) :
IsIso ((Scheme.ΓSpecIso (.of S.R)).inv ≫ S.openImmersion.appTop)
Sources
Section26.10 Immersions of schemes#
Section 26.10 of the Stacks Project, Tag 01IM. 3 tags here are carried by 6 declarations of the repository (all in StacksFrontier) and 11 registered declarations, quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 01IN, a lemma
Tag 01IN in the Stacks Project.
Stacks.ClosedImmersion.exists_ideal_iso_quotient_of_isAffineOpen, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Scheme/Immersion/ClosedSubspaceScheme.lean, line 114. The attribute's comment: “affine_local_quotient”.
Over an affine open
Uof a schemeX, a closed immersion of locally ringed spacesi : Z ⟶ Xis, compatibly with the canonical presentation ofUasSpec Γ(X, U), the spectrum of a quotient ofΓ(X, U).
theorem exists_ideal_iso_quotient_of_isAffineOpen (X : Scheme.{u}) (Z : LocallyRingedSpace.{u})
(i : Z ⟶ X.toLocallyRingedSpace) [hi : IsClosedImmersion i.toShHom]
(U : X.Opens) (hU : IsAffineOpen U) :
∃ (I : Ideal Γ(X, U)) (e : pullback i U.ι.toLRSHom ≅
(Spec (CommRingCat.of (Γ(X, U) ⧸ I))).toLocallyRingedSpace),
pullback.snd i U.ι.toLRSHom ≫ hU.isoSpec.hom.toLRSHom =
e.hom ≫ (Spec.map (CommRingCat.ofHom (Ideal.Quotient.mk I))).toLRSHom
Stacks.ClosedImmersion.exists_scheme_of_isClosedImmersion, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Scheme/Immersion/ClosedSubspaceScheme.lean, line 134. The attribute's comment: “source_is_scheme”.
The source of a closed immersion of locally ringed spaces into a scheme carries a scheme structure.
theorem exists_scheme_of_isClosedImmersion (X : Scheme.{u}) (Z : LocallyRingedSpace.{u})
(i : Z ⟶ X.toLocallyRingedSpace) [IsClosedImmersion i.toShHom] :
∃ Z' : Scheme.{u}, Z'.toLocallyRingedSpace = Z
Stacks.ClosedImmersion.exists_scheme_of_closedSubspace, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Scheme/Immersion/ClosedSubspaceScheme.lean, line 195. The attribute's comment: “closed_subspace_is_scheme”.
The closed subspace of a scheme cut out by a locally generated ideal sheaf carries a scheme structure on its underlying locally ringed space.
theorem exists_scheme_of_closedSubspace (X : Scheme.{u})
(J : SheafOfModules.{u} (structureSheafRing X.toLocallyRingedSpace.toRingedSpace))
(j : J ⟶ SheafOfModules.unit (structureSheafRing X.toLocallyRingedSpace.toRingedSpace))
[Mono j] (hJ : Nonempty (SheafOfModules.LocalGeneratorsData.{u} J)) :
∃ Z : Scheme.{u}, Z.toLocallyRingedSpace =
(closedSubspace X.toLocallyRingedSpace J j hJ).space
Stacks.ClosedImmersion.exists_ideal_idealSheaf_restrict_iso_tilde_of_locallyRingedSpace, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Scheme/Immersion/IdealSheafAffineOpen.lean, line 264. The attribute's comment: “kernel_on_affine_open”.
The affine-local description of the ideal sheaf for a closed immersion of locally ringed spaces
i : Z ⟶ Xinto a scheme: over an affine openU = Spec RofXthere is an idealI ⊆ R = Γ(X, U)presenting the fibre overUasSpec (R ⧸ I), and the kernelℐof𝒪_X ⟶ i_* 𝒪_Zrestricts onUtoI^~.The source
Zis a scheme byStacks.ClosedImmersion.sourceScheme, soiis a morphism of schemesStacks.ClosedImmersion.sourceSchemeHomwith the same ideal sheaf, and this isStacks.ClosedImmersion.exists_ideal_idealSheaf_restrict_iso_tildefor that morphism.
theorem exists_ideal_idealSheaf_restrict_iso_tilde_of_locallyRingedSpace (X : Scheme.{u})
(Z : LocallyRingedSpace.{u}) (i : Z ⟶ X.toLocallyRingedSpace)
[hi : IsClosedImmersion i.toShHom] (U : X.Opens) (hU : IsAffineOpen U) :
∃ (I : Ideal Γ(X, U)) (e : pullback (sourceSchemeHom X Z i) U.ι ≅
Spec (CommRingCat.of (Γ(X, U) ⧸ I))),
pullback.snd (sourceSchemeHom X Z i) U.ι ≫ hU.isoSpec.hom =
e.hom ≫ Spec.map (CommRingCat.ofHom (Ideal.Quotient.mk I)) ∧
∃ φ : (Scheme.Modules.restrictFunctor U.ι).obj (idealSheaf i.toShHom) ≅
(modulePullback hU.isoSpec.hom.toLRSHom.toShHom).obj
(tilde (ModuleCat.of Γ(X, U) I)),
φ.hom ≫ (modulePullback hU.isoSpec.hom.toLRSHom.toShHom).map
(tildeIdealι Γ(X, U) I) ≫
(Stacks.IdealSheafRestrict.pullbackUnitIso hU.isoSpec.hom).hom =
(Scheme.Modules.restrictFunctor U.ι).map
(kernel.ι (SheafOfModules.unitToPushforwardObjUnit
(structureSheafHom i.toShHom))) ≫
(Scheme.Modules.restrictUnitIso U.ι).hom
Stacks.ClosedImmersion.isQuasicoherent_idealSheaf, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Scheme/Immersion/IdealSheafQuasicoherent.lean, line 53. The attribute's comment: “kernel_quasi_coherent”.
Stacks Project, Tag 01IN. The kernel of
𝒪_X ⟶ i_* 𝒪_Zfor a closed immersion of locally ringed spacesi : Z ⟶ Xinto a scheme is a quasi-coherent sheaf of ideals.
theorem isQuasicoherent_idealSheaf (X : Scheme.{u}) (Z : LocallyRingedSpace.{u})
(i : Z ⟶ X.toLocallyRingedSpace) [hi : IsClosedImmersion i.toShHom] :
(idealSheaf i.toShHom).IsQuasicoherent
Stacks.ClosedImmersion.isQuasicoherent_iff_localGenerators, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Scheme/Immersion/IdealSheafQuasicoherent.lean, line 66. The attribute's comment: “ideal_quasi_coherent_iff_locally_generated”.
Stacks Project, Tag 01IN. A sheaf of ideals on a scheme is locally generated by sections if and only if it is quasi-coherent.
theorem isQuasicoherent_iff_localGenerators (X : Scheme.{u})
(J : (SheafOfModules.unit X.ringCatSheaf).Submodule) :
J.toSheafOfModules.IsQuasicoherent ↔
Nonempty (SheafOfModules.LocalGeneratorsData.{u} J.toSheafOfModules)
Tag 01IO, a definition
Tag 01IO in the Stacks Project.
Declarations registered for the tag:
AlgebraicGeometry.IsOpenImmersionregistered withadd_to_stacksin StacksFrontier/AlgebraicGeometry/Scheme/Immersion/Basic.lean, line 44 (StacksFrontier): “part (1): open immersions”. References: EGA I (4.2.1).AlgebraicGeometry.Scheme.Opensregistered withadd_to_stacksin StacksFrontier/AlgebraicGeometry/Scheme/Immersion/Basic.lean, line 46 (StacksFrontier): “part (2): open subsets”. References: SGA 1 IX (2.3); SGA 1 VIII (4.4); SGA 4 VII (4.2.2), “partial”.AlgebraicGeometry.Scheme.Opens.toSchemeregistered withadd_to_stacksin StacksFrontier/AlgebraicGeometry/Scheme/Immersion/Basic.lean, line 50 (StacksFrontier): “part (2): restricted scheme”. References: EGA I (10.4.4), “special case”; EGA I (2.1.7); EGA I (2.2.10); EGA I (2.2.3); EGA I (4.1.3), “special case”; EGA IV (4.5.3), “partial”; EGA IV (4.9.6), “partial”; EGA IV (9.6.7); EGA IV (9.7.11), “more general”; SGA 2 XII (4.1).AlgebraicGeometry.Scheme.Opens.ιregistered withadd_to_stacksin StacksFrontier/AlgebraicGeometry/Scheme/Immersion/Basic.lean, line 61 (StacksFrontier): “part (2): inclusion”. References: EGA I (2.2.3); EGA I (4.1.7), “special case”; EGA I (4.2.1); SGA 1 XIII (2.1.0); SGA 2 XII (4.1); SGA 4 XVI (3.1), “more general”.AlgebraicGeometry.IsClosedImmersionregistered withadd_to_stacksin StacksFrontier/AlgebraicGeometry/Scheme/Immersion/Basic.lean, line 68 (StacksFrontier): “part (3): closed immersions”. References: EGA I (4.2.1); SGA 3 IV (4.7).AlgebraicGeometry.Scheme.IdealSheafDataregistered withadd_to_stacksin StacksFrontier/AlgebraicGeometry/Scheme/Immersion/Basic.lean, line 71 (StacksFrontier): “part (4): ideal sheaves”.AlgebraicGeometry.Scheme.IdealSheafData.subschemeregistered withadd_to_stacksin StacksFrontier/AlgebraicGeometry/Scheme/Immersion/Basic.lean, line 72 (StacksFrontier): “part (4): closed subscheme”. References: EGA I (10.14.2), “partial”; EGA I (4.1.2); EGA I (4.1.3); EGA I (5.1.9), “more general”; EGA II (4.6.15), “more general”; EGA II (8.13.4); EGA III (5.3.5); EGA IV (21.15.3.3), “more general”; EGA IV (21.2.12), “more general”; EGA IV (21.6.5); EGA IV (4.5.3), “partial”; SGA 3 III (4.5.0).AlgebraicGeometry.Scheme.IdealSheafData.subschemeιregistered withadd_to_stacksin StacksFrontier/AlgebraicGeometry/Scheme/Immersion/Basic.lean, line 85 (StacksFrontier): “part (4): inclusion”. References: EGA I (4.1.7), “special case”; EGA I (5.1.9), “more general”; EGA II (4.6.15), “more general”; EGA II (8.13.4); EGA III (4.1.3), “canonical immersion i_k”; EGA IV (21.15.3.3), “more general”; EGA IV (21.2.12), “more general”; EGA IV (21.6.5); SGA 1 III (7.1), “partial”; SGA 3 III (4.5.0).AlgebraicGeometry.IsImmersionregistered withadd_to_stacksin StacksFrontier/AlgebraicGeometry/Scheme/Immersion/Basic.lean, line 96 (StacksFrontier): “part (5): locally closed immersions”. References: EGA I (4.2.1); SGA 3 IV (4.7), “partial”.AlgebraicGeometry.IsImmersion.isImmersion_iff_existsregistered withadd_to_stacksin StacksFrontier/AlgebraicGeometry/Scheme/Immersion/Basic.lean, line 99 (StacksFrontier): “part (5): factorization”. References: EGA I (4.2.1); SGA 6 0 (2.1), “special case”.
Tag 01IQ, a lemma
Tag 01IQ in the Stacks Project.
Declarations registered for the tag:
AlgebraicGeometry.isClosedImmersion_iff_isClosed_range, declared in the repository, registered withadd_to_stacksin StacksFrontier/AlgebraicGeometry/Morphisms/Valuative/ImmersionClosedness.lean, line 135 (StacksFrontier).
Sources
Section26.11 Zariski topology of schemes#
Section 26.11 of the Stacks Project, Tag 01IR. 8 tags here are carried by 6 declarations of the repository (all in StacksFrontier) and 7 registered declarations, quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 01IS, a lemma
Tag 01IS in the Stacks Project.
Declarations registered for the tag:
AlgebraicGeometry.instQuasiSoberCarrierCarrierCommRingCatregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch26.lean, line 170 (StacksFrontier): “existence of generic points of irreducible closed subsets (quasi-sober)”. References: EGA I (2.1.5), “partial”; SGA 4 VIII (7.9.3), “partial”.AlgebraicGeometry.instT0SpaceCarrierCarrierCommRingCatregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch26.lean, line 172 (StacksFrontier): “uniqueness of generic points (T0)”. References: EGA I (1.1.8), “more general”; EGA I (2.1.4).
Tag 01IT, a lemma
Tag 01IT in the Stacks Project.
Declarations registered for the tag:
AlgebraicGeometry.Scheme.isBasis_affineOpensregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch26.lean, line 175 (StacksFrontier). References: EGA I (2.1.3); EGA I (10.4.3), “special case”.
Tag 01IV, a lemma
Tag 01IV in the Stacks Project.
Declarations registered for the tag:
AlgebraicGeometry.instPrespectralSpaceCarrierCarrierCommRingCatregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch26.lean, line 177 (StacksFrontier): “the underlying space of a scheme is prespectral”. References: SGA 4 VI (2.4.7), “partial”.instLocallyCompactSpaceOfPrespectralSpaceregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch26.lean, line 179 (StacksFrontier): “a prespectral space is locally quasi-compact”.
Tag 01IW, a lemma
Tag 01IW in the Stacks Project.
Declarations registered for the tag:
AlgebraicGeometry.exists_basicOpen_le_affine_interregistered withadd_to_stacksin StacksFrontier/AlgebraicGeometry/Scheme/Affine/StandardOpenTwoAffines.lean, line 22 (StacksFrontier): “the common standard open isX.basicOpen f = X.basicOpen g, affine as a standard open of the affine openU”.
Tag 01IX, a lemma
Tag 01IX in the Stacks Project.
AlgebraicGeometry.Scheme.exists_isStandardOpenCover_basicOpen_eq_of_iSup_eq_top, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Scheme/Affine/StandardRefinement.lean, line 44.
Every affine open has a finite standard open cover each of whose members is also a standard open in a member of a given affine open cover of the ambient scheme.
theorem exists_isStandardOpenCover_basicOpen_eq_of_iSup_eq_top
(X : Scheme.{u}) {ι : Type v} (U : ι → X.Opens)
(hU : ∀ i, IsAffineOpen (U i)) (hUcover : ⨆ i, U i = ⊤)
(V : X.Opens) (hV : IsAffineOpen V) :
∃ (n : ℕ) (f : Fin n → Γ(X, V)) (i : Fin n → ι)
(g : ∀ j, Γ(X, U (i j))),
PrimeSpectrum.IsStandardOpenCoverOfSpectrum f ∧
(⨆ j, X.basicOpen (f j)) = V ∧
∀ j, X.basicOpen (f j) = X.basicOpen (g j)
Tag 0F1A, a lemma
Tag 0F1A in the Stacks Project.
AlgebraicGeometry.Scheme.isRestriction_iff_isSheafOnAffineBasis, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Scheme/Affine/SheafOnBasis.lean, line 618. The attribute's comment: “equivalence of (1) and (2)”. References: EGA 0 (3.2.2), “affine basis of a scheme”.
A presheaf on the affine opens is (up to isomorphism) the restriction of a sheaf if and only if it is a sheaf on the affine-open basis.
theorem isRestriction_iff_isSheafOnAffineBasis (X : Scheme.{u})
(F : PresheafOnBasis X.affineOpens) :
(∃ G : TopCat.Sheaf (Type u) (TopCat.of X),
Nonempty (F ≅ restrictOfSheaf X.affineOpens G)) ↔
IsSheafOnBasis X.affineOpens F
AlgebraicGeometry.Scheme.isSheafOnAffineBasis_iff_standardPairs, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Scheme/Affine/SheafOnBasis.lean, line 642. The attribute's comment: “equivalence of (2) and (3)”.
A presheaf on the affine-open basis is a sheaf exactly when its section set on the empty open is a singleton and compatible sections glue uniquely across every standard two-open cover of an affine open.
theorem isSheafOnAffineBasis_iff_standardPairs (X : Scheme.{u})
(F : PresheafOnBasis X.affineOpens) :
IsSheafOnBasis X.affineOpens F ↔
((∃! _s : F.obj (op (affineBasisOpen X ⟨⊥, isAffineOpen_bot X⟩)), True) ∧
∀ (U : X.affineOpens) (f g : Γ(X, U.1))
(_hcov : U.1 = X.basicOpen f ⊔ X.basicOpen g)
(s : F.obj (op (affineBasisOpen X (X.affineBasicOpen f))))
(t : F.obj (op (affineBasisOpen X (X.affineBasicOpen g)))),
(F.restrictMap X.affineOpens
(show (affineBasisOpen X (X.affineBasicOpen (f * g))).obj ≤
(affineBasisOpen X (X.affineBasicOpen f)).obj by
change X.basicOpen (f * g) ≤ X.basicOpen f
rw [X.basicOpen_mul]
exact inf_le_left) s =
F.restrictMap X.affineOpens
(show (affineBasisOpen X (X.affineBasicOpen (f * g))).obj ≤
(affineBasisOpen X (X.affineBasicOpen g)).obj by
change X.basicOpen (f * g) ≤ X.basicOpen g
rw [X.basicOpen_mul]
exact inf_le_right) t) ↔
∃! r : F.obj (op (affineBasisOpen X U)),
(F.restrictMap X.affineOpens (by exact (X.affineBasicOpen_le f)) r = s) ∧
(F.restrictMap X.affineOpens (by exact (X.affineBasicOpen_le g)) r = t))
Tag 02O0, a lemma
Tag 02O0 in the Stacks Project.
Declarations registered for the tag:
AlgebraicGeometry.instIsAffineOfFiniteOfDiscreteTopologyCarrierCarrierCommRingCatregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch26.lean, line 123 (StacksFrontier): “the statement”.
Tag 01IY, an example
Tag 01IY in the Stacks Project.
AlgebraicGeometry.exists_valuationRing_with_spectrum_chain, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Schemes/ZariskiAndSeparation/NoClosedPoints.lean, line 495. The attribute's comment: “valuation ring with the specified prime spectrum”.
There is a valuation ring whose spectrum is a countable strictly increasing chain of prime ideals, with one further maximal ideal above all of them.
theorem exists_valuationRing_with_spectrum_chain :
∃ (R : Type u) (ring : CommRing R),
letI : CommRing R := ring
∃ (domain : IsDomain R),
letI : IsDomain R := domain
∃ (localRing : IsLocalRing R),
letI : IsLocalRing R := localRing
IsValuationRing R ∧
∃ p : ℕ → PrimeSpectrum R,
((p 0).asIdeal = ⊥) ∧
(∀ n, (p n).asIdeal < (p (n + 1)).asIdeal) ∧
(∀ q : PrimeSpectrum R,
(q = IsLocalRing.closedPoint R) ∨ (∃ n, q = p n))
AlgebraicGeometry.puncturedSpectrum_no_closed_points, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Schemes/ZariskiAndSeparation/NoClosedPoints.lean, line 537. The attribute's comment: “the punctured spectrum has no closed points”.
Removing the unique closed point from a local spectrum with the indicated unbounded chain of other primes gives an open subscheme without closed points.
theorem puncturedSpectrum_no_closed_points
(R : Type u) [CommRing R] [IsLocalRing R]
(p : ℕ → PrimeSpectrum R)
(hchain : ∀ n, (p n).asIdeal < (p (n + 1)).asIdeal)
(hexhaust : ∀ q : PrimeSpectrum R,
(q = IsLocalRing.closedPoint R) ∨ (∃ n, q = p n)) :
∀ x : Scheme.Opens.toScheme
(⟨({IsLocalRing.closedPoint R} : Set (PrimeSpectrum R))ᶜ,
(IsLocalRing.isClosed_singleton_closedPoint R).isOpen_compl⟩ :
(Spec (.of R)).Opens),
¬ IsClosed ({x} : Set _)
AlgebraicGeometry.exists_scheme_without_closed_points, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Schemes/ZariskiAndSeparation/NoClosedPoints.lean, line 565. The attribute's comment: “existence of a scheme without closed points”.
A nonempty scheme may have no closed points.
theorem exists_scheme_without_closed_points :
∃ X : Scheme.{u}, Nonempty X ∧ ∀ x : X, ¬ IsClosed ({x} : Set X)
Sources
Section26.12 Reduced schemes#
Section 26.12 of the Stacks Project, Tag 01IZ. 7 tags here are carried by 6 declarations of the repository (all in StacksFrontier) and 10 registered declarations, quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 01J0, a definition
Tag 01J0 in the Stacks Project.
Declarations registered for the tag:
AlgebraicGeometry.IsReducedregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch26.lean, line 182 (StacksFrontier): “reduced scheme; Mathlib's definition asks all rings of sections to be reduced”. References: EGA 0 (4.1.4); EGA IV (10.10.4); EGA IV (3.4.1); SGA 1 I (10.11); SGA 1 II (2.4).AlgebraicGeometry.isReduced_of_isReduced_stalkregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch26.lean, line 184 (StacksFrontier): “a scheme all of whose local rings are reduced is reduced”.AlgebraicGeometry.isReduced_stalk_of_isReducedregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch26.lean, line 186 (StacksFrontier): “the local rings of a reduced scheme are reduced”. References: EGA IV (10.10.4), “forward direction”.
Tag 01J1, a lemma
Tag 01J1 in the Stacks Project.
Declarations registered for the tag:
AlgebraicGeometry.isReduced_of_isReduced_stalkregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch26.lean, line 189 (StacksFrontier): “local rings reduced implies all rings of sections reduced”.AlgebraicGeometry.isReduced_stalk_of_isReducedregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch26.lean, line 191 (StacksFrontier): “all rings of sections reduced implies local rings reduced”. References: EGA IV (10.10.4), “forward direction”.
Tag 01J2, a lemma
Tag 01J2 in the Stacks Project.
Declarations registered for the tag:
AlgebraicGeometry.affine_isReduced_iffregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch26.lean, line 312 (StacksFrontier). References: EGA I (5.1.4); EGA II (1.3.8), “special case”.
Tag 01J3, a lemma
Tag 01J3 in the Stacks Project.
AlgebraicGeometry.Scheme.IdealSheafData.eq_vanishingIdeal_of_isReduced_subscheme, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Properties/ReducedClosedSubscheme.lean, line 72. The attribute's comment: “uniqueness”. References: EGA I (5.1.2), “uniqueness”; EGA I (5.2.1), “closed case, uniqueness”.
A reduced closed subscheme structure on a closed subset is its vanishing-ideal structure.
theorem eq_vanishingIdeal_of_isReduced_subscheme {X : Scheme.{u}}
(I : X.IdealSheafData) (T : Closeds X) (hT : I.support = T)
[IsReduced I.subscheme] : I = Scheme.IdealSheafData.vanishingIdeal T
Declarations registered for the tag:
AlgebraicGeometry.Scheme.IdealSheafData.vanishingIdealregistered withadd_to_stacksin StacksFrontier/AlgebraicGeometry/Properties/ReducedClosedSubscheme.lean, line 56 (StacksFrontier): “canonical construction”. References: EGA I (10.8.1); EGA III (5.3.5).AlgebraicGeometry.Scheme.IdealSheafData.coe_support_vanishingIdealregistered withadd_to_stacksin StacksFrontier/AlgebraicGeometry/Properties/ReducedClosedSubscheme.lean, line 60 (StacksFrontier): “underlying closed subset”. References: EGA I (10.8.1), “more general”; EGA III (5.3.5), “partial”.AlgebraicGeometry.Scheme.IdealSheafData.isReduced_subscheme_vanishingIdeal, declared in the repository, registered withadd_to_stacksin StacksFrontier/AlgebraicGeometry/Properties/ReducedClosedSubscheme.lean, line 65 (StacksFrontier): “reducedness”.
Tag 01J4, a definition
Tag 01J4 in the Stacks Project.
AlgebraicGeometry.Scheme.reduction, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Scheme/Reduction.lean, line 57. The attribute's comment: “the reduction X_red of X”. References: EGA I (5.1.3).
The reduction
X_redof a schemeX: the closed subscheme cut out by the nilradical ideal sheaf, that is the reduced induced closed subscheme structure on all ofX.
noncomputable def reduction : Scheme.{u}
AlgebraicGeometry.Scheme.reducedInduced, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Scheme/SchemeStructure.lean, line 108. The attribute's comment: “the reduced induced scheme structure on Z”. References: EGA I (5.5.4); EGA IV (4.9.4).
The reduced induced scheme structure on a closed subset
ZofX: the closed subscheme cut out by the vanishing ideal sheaf ofZ.
noncomputable def reducedInduced {X : Scheme.{u}} (Z : Closeds X) : X.SchemeStructure Z
Declarations registered for the tag:
AlgebraicGeometry.Scheme.SchemeStructure, declared in the repository, registered withadd_to_stacksin StacksFrontier/AlgebraicGeometry/Scheme/SchemeStructure.lean, line 60 (StacksFrontier): “scheme structure on Z”.
Tag 0F2L, a remark
Tag 0F2L in the Stacks Project.
Stacks.ZariskiAndSeparation.ReducedInducedLocallyClosed.reducedInducedIdealSheaf, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Schemes/ZariskiAndSeparation/ReducedInducedLocallyClosed.lean, line 35. The attribute's comment: “reduced_induced_scheme_structure_on_a_locally_closed_subset”.
The defining ideal sheaf of the reduced induced scheme structure on a locally closed subset.
noncomputable def reducedInducedIdealSheaf {X : Scheme.{u}} (T : Set X)
(hT : IsLocallyClosed T) : (reducedInducedOpen T hT).toScheme.IdealSheafData
Tag 0356, a lemma
Tag 0356 in the Stacks Project.
AlgebraicGeometry.Scheme.IdealSheafData.exists_lift_subschemeι_iff_range_subset_support, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Properties/ReducedClosedSubscheme.lean, line 95. The attribute's comment: “factorization criterion”. References: EGA I (5.2.2), “more general”; SGA 3 VIB (7.3.0), “factorization criterion”; SGA 3 VIB (7.1), “partial”.
A map from a reduced scheme factors through a closed subscheme precisely when its set-theoretic image lies in the support of that subscheme.
theorem exists_lift_subschemeι_iff_range_subset_support {X Y : Scheme.{u}}
[IsReduced Y] (I : X.IdealSheafData) (f : Y ⟶ X) :
(∃ g : Y ⟶ I.subscheme, g ≫ I.subschemeι = f) ↔
Set.range f ⊆ (I.support : Set X)
AlgebraicGeometry.Scheme.existsUnique_lift_nilradical_subschemeι, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Properties/ReducedClosedSubscheme.lean, line 118. The attribute's comment: “factorization through the reduction”. References: EGA I (5.1.5), “reduced source factors”; EGA I (4.1.8), “special case”.
Every map from a reduced scheme factors uniquely through the reduction of its target.
theorem Scheme.existsUnique_lift_nilradical_subschemeι {X Y : Scheme.{u}} [IsReduced Y]
(f : Y ⟶ X) :
∃! g : Y ⟶ X.nilradical.subscheme, g ≫ X.nilradical.subschemeι = f
Sources
Section26.13 Points of schemes#
Section 26.13 of the Stacks Project, Tag 01J5. 3 tags here are carried by 4 declarations of the repository (all in StacksFrontier) and 3 registered declarations, quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 01J6, a lemma
Tag 01J6 in the Stacks Project.
Declarations registered for the tag:
AlgebraicGeometry.SpecToEquivOfLocalRingregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch26.lean, line 316 (StacksFrontier). References: EGA I (2.4.4); EGA I (3.4.5); SGA 3 XV (1.4), “partial”.
Tag 02NA, an equation
Tag 02NA in the Stacks Project.
Declarations registered for the tag:
AlgebraicGeometry.Scheme.fromSpecStalkregistered withadd_to_stacksin StacksFrontier/AlgebraicGeometry/Scheme/CanonicalMorphismFromLocalRing.lean, line 20 (StacksFrontier): “the canonical morphismSpec 𝒪_{X, x} ⟶ X”. References: EGA I (2.4.2); EGA I (2.4.7), “zero ideal a_y = 0”; EGA IV (5.9.6).
Tag 01J9, a lemma
Tag 01J9 in the Stacks Project.
AlgebraicGeometry.pointsEquivFieldValuedPointClasses, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Scheme/Points/FieldValued.lean, line 102. The attribute's comment: “the bijection with equivalence classes”.
Points of a scheme correspond bijectively to equivalence classes of field-valued points.
noncomputable def pointsEquivFieldValuedPointClasses (X : Scheme.{u}) :
X ≃ Quotient (FieldValuedPoint.setoid X)
AlgebraicGeometry.FieldValuedPoint.hasCommonExtension_iff_point_eq, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Scheme/Points/FieldValued.lean, line 121. The attribute's comment: “the common-extension relation”. References: EGA I (3.4.5), “location map”.
Two field-valued points have a common field-valued extension if and only if they have the same image point.
theorem hasCommonExtension_iff_point_eq {X : Scheme.{u}} (p q : FieldValuedPoint X) :
p.HasCommonExtension q ↔ p.point = q.point
AlgebraicGeometry.FieldValuedPoint.canonical_isSmallest, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Scheme/Points/FieldValued.lean, line 171. The attribute's comment: “the smallest representative”. References: EGA I (2.4.6), “factorization via κ(x)”.
The canonical morphism
Spec(κ(x)) ⟶ Xis the smallest representative of the equivalence class corresponding tox.
theorem canonical_isSmallest {X : Scheme.{u}} (x : X) :
(canonical X x).IsSmallest
AlgebraicGeometry.FieldValuedPoint.uniqueIso_of_isSmallest, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Scheme/Points/FieldValued.lean, line 195. The attribute's comment: “uniqueness up to unique isomorphism”.
Any two smallest representatives of the same point are uniquely isomorphic over
X.
theorem uniqueIso_of_isSmallest {X : Scheme.{u}} {p q : FieldValuedPoint X}
(hp : p.IsSmallest) (hq : q.IsSmallest) (h : p.point = q.point) :
∃! e : Spec (.of p.carrier) ≅ Spec (.of q.carrier), e.hom ≫ q.map = p.map
Declarations registered for the tag:
AlgebraicGeometry.Scheme.SpecToEquivOfFieldregistered withadd_to_stacksin StacksFrontier/AlgebraicGeometry/Scheme/Points/FieldValued.lean, line 52 (StacksFrontier): “morphisms from the spectrum of a fixed field”. References: EGA I (2.4.6); EGA I (3.4.5), “partial, special case”; EGA II (1.7.10), “Opening clause”.
Sources
Section26.14 Glueing schemes#
Section 26.14 of the Stacks Project, Tag 01JA. 5 tags here are carried by 50 declarations of the repository (all in StacksFrontier) and 10 registered declarations, quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 01JA, the section
Tag 01JA in the Stacks Project.
AlgebraicGeometry.isPushout_opens_ι_of_sup_eq_top, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Limits/OpenImmersionPushout.lean, line 88. The attribute's comment: “the two-chart glueing as a pushout square of schemes”.
A scheme covered by two opens is glued from them: the square formed by the two inclusions of the intersection and the two inclusions into the ambient scheme is a pushout square.
theorem isPushout_opens_ι_of_sup_eq_top {S : Scheme.{u}} {U V : S.Opens} (h : U ⊔ V = ⊤) :
IsPushout (S.homOfLE inf_le_left) (S.homOfLE inf_le_right) U.ι V.ι
AlgebraicGeometry.existsUnique_comp_ι_eq_of_sup_eq_top, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Limits/OpenImmersionPushout.lean, line 119. The attribute's comment: “the two-chart case of the mapping property for morphisms out of a glueing”.
The mapping property for morphisms out of a glueing with two charts: if the opens
U, Vof a schemeSsatisfyU ⊔ V = ⊤, then a morphism out ofSis the same thing as a pair of morphisms out ofUand out ofVagreeing onU ⊓ V.
theorem existsUnique_comp_ι_eq_of_sup_eq_top {S T : Scheme.{u}} {U V : S.Opens}
(h : U ⊔ V = ⊤) {a : U.toScheme ⟶ T} {b : V.toScheme ⟶ T}
(w : S.homOfLE inf_le_left ≫ a = S.homOfLE inf_le_right ≫ b) :
∃! m : S ⟶ T, U.ι ≫ m = a ∧ V.ι ≫ m = b
AlgebraicGeometry.opensRange_pushout_inl_sup_opensRange_pushout_inr, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Limits/OpenImmersionPushout.lean, line 136. The attribute's comment: “the two-chart case of part (1): the charts cover the glued scheme”.
The two charts of the scheme obtained by glueing
XandYalong a span of open immersions cover it.
theorem opensRange_pushout_inl_sup_opensRange_pushout_inr :
(pushout.inl f g).opensRange ⊔ (pushout.inr f g).opensRange = ⊤
AlgebraicGeometry.preimage_opensRange_pushout_inl, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Limits/OpenImmersionPushout.lean, line 152. The attribute's comment: “the two-chart case of part (2): the overlap of the two charts”.
Inside the second chart of the scheme obtained by glueing
XandYalong a span of open immersions, the overlap with the first chart is exactly the image of the span's vertex.
theorem preimage_opensRange_pushout_inl :
(pushout.inr f g) ⁻¹ᵁ (pushout.inl f g).opensRange = g.opensRange
AlgebraicGeometry.isPullback_pushout_inl_inr, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Limits/OpenImmersionPushout.lean, line 169. The attribute's comment: “the two-chart case of part (2), as a cartesian square”.
The pushout square of a span of open immersions of schemes is also cartesian: the span's vertex is the intersection of the two charts of the glued scheme.
theorem isPullback_pushout_inl_inr :
IsPullback f g (pushout.inl f g) (pushout.inr f g)
Tag 01JB, a lemma
Tag 01JB in the Stacks Project.
AlgebraicGeometry.LocallyRingedSpace.GlueData.range_overlap, a lemma in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Scheme/Glueing/LocallyRingedSpaces.lean, line 94. The attribute's comment: “part (2): the overlap is the intersection of two charts”.
The prescribed overlap
V i j, viewed inside the chartU ithroughD.f i j, is exactly the part of that chart lying over the chartU j:φ i '' U i j = U i ∩ U jin the glued space, stated as an equality of subsets ofU i.
lemma range_overlap (D : LocallyRingedSpace.GlueData.{u}) (i j : D.J) :
Set.range (D.f i j).base = (D.ι i).base ⁻¹' Set.range (D.ι j).base
AlgebraicGeometry.LocallyRingedSpace.GlueData.t_f_eq_restrictOverlapIso_comp, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Scheme/Glueing/LocallyRingedSpaces.lean, line 133. The attribute's comment: “part (3): the transition map is the restriction of φ j⁻¹ ∘ φ i”.
The transition map is
φ j⁻¹ ∘ φ ion the overlap: for any morphisms : U i ∩ U j ⟶ U jwiths ≫ φ jthe inclusion ofU i ∩ U j(the restriction ofφ j⁻¹toU i ∩ U j), the mapφ i j, read in the chartU j, isscomposed with the restriction isomorphism.
theorem t_f_eq_restrictOverlapIso_comp (D : LocallyRingedSpace.GlueData.{u}) (i j : D.J)
(s : pullback (D.ι i) (D.ι j) ⟶ D.U j)
(hs : s ≫ D.ι j = pullback.fst (D.ι i) (D.ι j) ≫ D.ι i) :
D.t i j ≫ D.f j i = (D.restrictOverlapIso i j).hom ≫ s
AlgebraicGeometry.LocallyRingedSpace.GlueData.homOutEquiv, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Scheme/Glueing/LocallyRingedSpaces.lean, line 146. The attribute's comment: “the mapping property for morphisms out of the glueing”.
The mapping property for morphisms out of a gluing: a morphism
D.glued ⟶ Yis the same thing as a family of morphismsD.U i ⟶ Yagreeing on the prescribed overlaps, the agreement being read through the transition maps. The bijection sends a morphism to the family of its restrictionsD.ι i ≫ h.
noncomputable def homOutEquiv
(D : LocallyRingedSpace.GlueData.{u}) (Y : LocallyRingedSpace.{u}) :
(D.glued ⟶ Y) ≃
{ f : ∀ i, D.U i ⟶ Y //
∀ i j, D.f i j ≫ f i = D.t i j ≫ D.f j i ≫ f j }
AlgebraicGeometry.LocallyRingedSpace.GlueData.hom_pullbackCharts_jointlySurjective, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Scheme/Glueing/LocallyRingedSpaces.lean, line 173. The attribute's comment: “canonical inverse-image cover”.
The pullbacks of the canonical charts along a morphism into the glued space jointly cover its source.
theorem hom_pullbackCharts_jointlySurjective (D : LocallyRingedSpace.GlueData.{u})
{Y : LocallyRingedSpace.{u}} (g : Y ⟶ D.glued) (y : Y) :
∃ (i : D.J) (x : pullback (C := LocallyRingedSpace) g (D.ι i)),
(pullback.fst g (D.ι i)).base x = y
AlgebraicGeometry.LocallyRingedSpace.GlueData.hom_pullbackCharts_preimage_overlap, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Scheme/Glueing/LocallyRingedSpaces.lean, line 183. The attribute's comment: “inverse images of overlaps”.
On the inverse-image chart indexed by
i, the inverse image ofV i jis exactly its intersection with the chart indexed byj.
theorem hom_pullbackCharts_preimage_overlap (D : LocallyRingedSpace.GlueData.{u})
{Y : LocallyRingedSpace.{u}} (g : Y ⟶ D.glued) (i j : D.J) :
(pullback.snd g (D.ι i)).base ⁻¹' Set.range (D.f i j).base =
Set.range
(pullback.fst (pullback.fst g (D.ι i))
(pullback.fst g (D.ι j))).base
AlgebraicGeometry.LocallyRingedSpace.GlueData.hom_pullbackCharts_transition, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Scheme/Glueing/LocallyRingedSpaces.lean, line 202. The attribute's comment: “transition compatibility for morphisms into the gluing”.
The local morphisms on the inverse-image charts are related on intersections by the prescribed transition map.
theorem hom_pullbackCharts_transition (D : LocallyRingedSpace.GlueData.{u})
{Y : LocallyRingedSpace.{u}} (g : Y ⟶ D.glued) (i j : D.J) :
∃! k : pullback (pullback.fst g (D.ι i)) (pullback.fst g (D.ι j)) ⟶ D.V (i, j),
k ≫ D.f i j =
pullback.fst (pullback.fst g (D.ι i)) (pullback.fst g (D.ι j)) ≫
pullback.snd g (D.ι i) ∧
k ≫ D.t i j ≫ D.f j i =
pullback.snd (pullback.fst g (D.ι i)) (pullback.fst g (D.ι j)) ≫
pullback.snd g (D.ι j)
AlgebraicGeometry.LocallyRingedSpace.GlueData.existsUnique_hom_of_openCover, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Scheme/Glueing/MorphismsIntoGluing/GluingReconstruction.lean, line 268. The attribute's comment: “morphisms of locally ringed spaces glue over an open covering of the source”.
Morphisms of locally ringed spaces glue over an open covering of the source: a family of morphisms out of the members of the covering which agree on the pairwise overlaps comes from a unique morphism out of the covered space.
This is the locally ringed space counterpart of
AlgebraicGeometry.Scheme.Cover.glueMorphisms, and the reason it is available here is that the covered space is the gluing of its own covering (openCoverFromGlued_isIso), so the morphism is obtained from the universal property of the multicoequalizer.
theorem existsUnique_hom_of_openCover
{I : Type u} {Y Z : LocallyRingedSpace.{u}}
{V : I → LocallyRingedSpace.{u}} (v : ∀ i, V i ⟶ Y)
[∀ i, LocallyRingedSpace.IsOpenImmersion (v i)]
(hv : ∀ y : Y, ∃ i x, (v i).base x = y)
(h : ∀ i, V i ⟶ Z)
(hcompat : ∀ i j, pullback.fst (v i) (v j) ≫ h i = pullback.snd (v i) (v j) ≫ h j) :
∃! f : Y ⟶ Z, ∀ i, v i ≫ f = h i
AlgebraicGeometry.LocallyRingedSpace.GlueData.existsUnique_hom_to_glued_of_compatibleCharts, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Scheme/Glueing/MorphismsIntoGluing/GluingReconstruction.lean, line 312. The attribute's comment: “reconstruction from compatible charts”.
Compatible morphisms from an open covering of a locally ringed space to the pieces of a gluing datum determine a unique morphism to the glued space. The two equations for
transitionLiftsay that onV i ×_Y V jthe maps are related by the transitionD.t i j.
theorem existsUnique_hom_to_glued_of_compatibleCharts
(D : LocallyRingedSpace.GlueData.{u}) (Y : LocallyRingedSpace.{u})
(V : D.J → LocallyRingedSpace.{u}) (v : ∀ i, V i ⟶ Y)
(v_open : ∀ i, LocallyRingedSpace.IsOpenImmersion (v i))
(v_jointly_surjective : ∀ y : Y, ∃ (i : D.J) (x : V i), (v i).base x = y)
(g : ∀ i, V i ⟶ D.U i)
(transitionLift : ∀ i j, pullback (v i) (v j) ⟶ D.V (i, j))
(transitionLift_f : ∀ i j,
transitionLift i j ≫ D.f i j = pullback.fst (v i) (v j) ≫ g i)
(transitionLift_t_f : ∀ i j,
transitionLift i j ≫ D.t i j ≫ D.f j i = pullback.snd (v i) (v j) ≫ g j) :
∃! f : Y ⟶ D.glued, ∀ i, v i ≫ f = g i ≫ D.ι i
AlgebraicGeometry.LocallyRingedSpace.GlueData.hom_chartDatumOfHom, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Scheme/Glueing/MorphismsIntoGluing/GluingReconstruction.lean, line 418. The attribute's comment: “the mapping property for morphisms into the glueing”.
The mapping property for morphisms into a glueing: a morphism
g : Y ⟶ D.gluedis recovered from the descent datum it induces, so that passing from a morphism to its chart datum and back is the identity. Combined withAlgebraicGeometry.LocallyRingedSpace.GlueData.existsUnique_hom_to_glued, which says that every chart datum determines a unique morphism, this identifiesMor(Y, D.glued)with the set of descent data arising from morphisms.
theorem hom_chartDatumOfHom (D : LocallyRingedSpace.GlueData.{u})
{Y : LocallyRingedSpace.{u}} (g : Y ⟶ D.glued) :
∀ f : Y ⟶ D.glued,
(∀ i, (D.chartDatumOfHom g).v i ≫ f = (D.chartDatumOfHom g).g i ≫ D.ι i) → f = g
AlgebraicGeometry.LocallyRingedSpace.GlueData.ChartDatum.chartIso_hom_fst_and_snd, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Scheme/Glueing/MorphismsIntoGluing/GluingReconstruction.lean, line 499. The attribute's comment: “a descent datum is its own inverse-image covering”.
The other half of the round trip for morphisms into a glueing: a descent datum is carried isomorphically, chart by chart and compatibly with both the covering maps and the local morphisms, onto the descent datum induced by the morphism it determines — whose charts, covering maps and local morphisms are
pullback f (D.ι i),pullback.fst f (D.ι i)andpullback.snd f (D.ι i)bychartDatumOfHom_V,chartDatumOfHom_vandchartDatumOfHom_g. Together withAlgebraicGeometry.LocallyRingedSpace.GlueData.hom_chartDatumOfHomthis identifiesMor(Y, D.glued)with the descent data of the statement.
theorem ChartDatum.chartIso_hom_fst_and_snd {D : LocallyRingedSpace.GlueData.{u}}
{Y : LocallyRingedSpace.{u}} (C : D.ChartDatum Y) {f : Y ⟶ D.glued}
(hf : ∀ i, C.v i ≫ f = C.g i ≫ D.ι i) (i : D.J) :
(C.chartIso hf i).hom ≫ pullback.fst f (D.ι i) = C.v i ∧
(C.chartIso hf i).hom ≫ pullback.snd f (D.ι i) = C.g i
AlgebraicGeometry.LocallyRingedSpace.GlueData.homIntoEquiv, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Scheme/Glueing/MorphismsIntoGluing/MappingProperty.lean, line 273. The attribute's comment: “Mor(Y, X) is the set of descent data on an open covering of Y”.
The mapping property for morphisms into a gluing, as a bijection: a morphism
Y ⟶ D.gluedis the same thing as a descent datum onY, namely an open covering ofYtogether with compatible morphisms from its members to the pieces of the gluing datum. The bijection sendsfto the covering by the inverse imagesf ⁻¹' (U i)and the factorisations offthrough the charts. This is the counterpart for morphisms into the gluing ofAlgebraicGeometry.LocallyRingedSpace.GlueData.homOutEquiv.
noncomputable def homIntoEquiv (D : LocallyRingedSpace.GlueData.{u})
(Y : LocallyRingedSpace.{u}) : (Y ⟶ D.glued) ≃ D.ChartDatumOpens Y
Declarations registered for the tag:
CategoryTheory.GlueData.gluedregistered withadd_to_stacksin StacksFrontier/AlgebraicGeometry/Scheme/Glueing/LocallyRingedSpaces.lean, line 55 (StacksFrontier).CategoryTheory.GlueData.ιregistered withadd_to_stacksin StacksFrontier/AlgebraicGeometry/Scheme/Glueing/LocallyRingedSpaces.lean, line 56 (StacksFrontier).CategoryTheory.GlueData.glue_conditionregistered withadd_to_stacksin StacksFrontier/AlgebraicGeometry/Scheme/Glueing/LocallyRingedSpaces.lean, line 57 (StacksFrontier).LocallyRingedSpace.GlueData.ι_isOpenImmersionregistered withadd_to_stacksin StacksFrontier/AlgebraicGeometry/Scheme/Glueing/LocallyRingedSpaces.lean, line 58 (StacksFrontier).LocallyRingedSpace.GlueData.ι_jointly_surjectiveregistered withadd_to_stacksin StacksFrontier/AlgebraicGeometry/Scheme/Glueing/LocallyRingedSpaces.lean, line 59 (StacksFrontier).LocallyRingedSpace.GlueData.vPullbackConeIsLimitregistered withadd_to_stacksin StacksFrontier/AlgebraicGeometry/Scheme/Glueing/LocallyRingedSpaces.lean, line 60 (StacksFrontier).LocallyRingedSpace.IsOpenImmersion.pullback_fst_of_rightregistered withadd_to_stacksin StacksFrontier/AlgebraicGeometry/Scheme/Glueing/LocallyRingedSpaces.lean, line 61 (StacksFrontier).
Tag 01JC, a lemma
Tag 01JC in the Stacks Project.
Declarations registered for the tag:
AlgebraicGeometry.Scheme.GlueData.gluedregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch26.lean, line 318 (StacksFrontier): “the glued scheme”. References: EGA I (2.3.1); EGA IV (20.2.16), “more general”; SGA 3 XV (5.5), “more general”; SGA 6 II (AppI.1.2), “more general”.AlgebraicGeometry.Scheme.GlueData.isoLocallyRingedSpaceregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch26.lean, line 319 (StacksFrontier): “its locally ringed space is the gluing of locally ringed spaces of Stacks 01JB”. References: EGA I (2.3.1).
Tag 01JD, an example
Tag 01JD in the Stacks Project.
AlgebraicGeometry.affineSpaceWithDoubledZero, an abbrev in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Scheme/Glueing/DoubledOrigin.lean, line 105. The attribute's comment: “doubled_zero_construction”. References: EGA I (5.5.11), “doubled origin constr.”.
Affine
n-space overkwith its origin doubled, obtained by gluing two copies along the complements of their origins via the coordinate identification.
noncomputable abbrev affineSpaceWithDoubledZero (k : Type u) [Field k] (n : ℕ) :
Scheme.{u}
AlgebraicGeometry.coordinateMorphismData, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Scheme/Glueing/DoubledOrigin.lean, line 125. The attribute's comment: “coordinate_morphism”. References: EGA I (5.5.11), “morphism to Spec k[t]”; SGA 6 II (2.2.7.2), “more general”.
The coordinate maps on the two charts of affine space with doubled origin glue to a scheme morphism to affine space, restricting to the identity on each chart.
noncomputable def coordinateMorphismData (k : Type u) [Field k] (n : ℕ) :
{ f : affineSpaceWithDoubledZero k n ⟶
Spec (.of (MvPolynomial (Fin n) k)) //
∀ i : Fin 2,
chartInclusion k n i ≫ f = 𝟙 _ }
AlgebraicGeometry.coordinateMorphism_map_origin, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Scheme/Glueing/DoubledOrigin.lean, line 161. The attribute's comment: “origins_map_to_origin”. References: EGA I (5.5.11), “two origins over 0”.
The coordinate morphism maps the origin of each affine chart to the origin of affine space.
theorem coordinateMorphism_map_origin (k : Type u) [Field k] (n : ℕ)
(i : Fin 2) :
coordinateMorphism k n
(chartInclusion k n i
(affineOrigin k n)) = affineOrigin k n
AlgebraicGeometry.intersection_iso_puncturedAffinePlane, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Scheme/Glueing/DoubledOriginIntersection.lean, line 153. The attribute's comment: “non_affine_intersection”.
In dimension two, the overlap of the two affine charts of the doubled-origin scheme is the punctured affine plane.
theorem intersection_iso_puncturedAffinePlane (S : PuncturedAffinePlane.{u}) :
Nonempty (((chartInclusion S.k 2 0).opensRange ⊓
(chartInclusion S.k 2 1).opensRange).toScheme ≅ S.puncturedScheme)
AlgebraicGeometry.not_isAffineOpen_chartIntersection, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Scheme/Glueing/DoubledOriginIntersection.lean, line 162. The attribute's comment: “non_affine_intersection”.
For dimension greater than one, the two affine charts of affine space with doubled origin have a non-affine intersection.
theorem not_isAffineOpen_chartIntersection (k : Type u) [Field k] (n : ℕ)
(hn : 1 < n) :
¬ IsAffineOpen ((chartInclusion k n 0).opensRange ⊓
(chartInclusion k n 1).opensRange)
AlgebraicGeometry.exists_affineOpens_nonaffine_inf, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Scheme/Glueing/DoubledOriginIntersection.lean, line 174. The attribute's comment: “non_affine_intersection”.
The intersection of two affine opens in a scheme need not be affine.
theorem exists_affineOpens_nonaffine_inf :
∃ (X : Scheme.{u}) (U V : X.Opens),
IsAffineOpen U ∧ IsAffineOpen V ∧ ¬ IsAffineOpen (U ⊓ V)
AlgebraicGeometry.infinite_irreducibleClosed_closures, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Scheme/Glueing/DoubledOriginPoints.lean, line 132. The attribute's comment: “many_irreducible_closed”.
In dimension greater than one, infinitely many irreducible closed subsets of affine space with doubled origin are closures of nonclosed points in its first affine chart.
theorem infinite_irreducibleClosed_closures (k : Type u) [Field k] (n : ℕ) (hn : 1 < n) :
Set.Infinite
{ T : Set (affineSpaceWithDoubledZero k n) |
IsClosed T ∧ IsIrreducible T ∧
∃ x : Spec (.of (MvPolynomial (Fin n) k)),
¬ IsClosed ({x} : Set (Spec (.of (MvPolynomial (Fin n) k)))) ∧
T = closure ({(chartInclusion k n 0).base x} :
Set (affineSpaceWithDoubledZero k n)) }
AlgebraicGeometry.mem_origin_iff_mem_origin, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Scheme/Glueing/DoubledOriginPoints.lean, line 264. The attribute's comment: “origins_in_closed_subset”.
Apart from the two singleton origins, an irreducible closed subset of affine space with the origin doubled contains either both origins or neither.
theorem mem_origin_iff_mem_origin (k : Type u) [Field k] (n : ℕ)
(T : Set (affineSpaceWithDoubledZero k n))
(hT : IsIrreducible T) (hT_closed : IsClosed T)
(hT₀ : T ≠ {chartInclusion k n 0 (affineOrigin k n)})
(hT₁ : T ≠ {chartInclusion k n 1 (affineOrigin k n)}) :
(chartInclusion k n 0 (affineOrigin k n) ∈ T ↔
chartInclusion k n 1 (affineOrigin k n) ∈ T)
AlgebraicGeometry.isIso_coordinateMorphism_globalSections, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Scheme/Glueing/DoubledOriginSections.lean, line 146. The attribute's comment: “global_sections”. References: EGA I (5.5.11), “more general”; SGA 6 II (2.2.7.2), “more general”.
In positive dimension, every global function on affine space with doubled origin is induced uniquely by a polynomial via the coordinate morphism.
theorem isIso_coordinateMorphism_globalSections (k : Type u) [Field k]
(n : ℕ) (hn : 0 < n) :
IsIso ((Scheme.ΓSpecIso (.of (MvPolynomial (Fin n) k))).inv ≫
(coordinateMorphism k n).appTop)
AlgebraicGeometry.not_isAffine_affineSpaceWithDoubledZero, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Scheme/Glueing/DoubledOriginSections.lean, line 176. The attribute's comment: “not_affine”.
Affine space of positive dimension with its origin doubled is not affine.
theorem not_isAffine_affineSpaceWithDoubledZero (k : Type u) [Field k]
(n : ℕ) (hn : 0 < n) :
¬ IsAffine (affineSpaceWithDoubledZero k n)
Declarations registered for the tag:
AlgebraicGeometry.isAffineOpen_opensRangeregistered withadd_to_stacksin StacksFrontier/AlgebraicGeometry/Scheme/Glueing/DoubledOrigin.lean, line 58 (StacksFrontier): “affine_open_charts”.
Tag 01JE, an example
Tag 01JE in the Stacks Project.
AlgebraicGeometry.projectiveLineInversionIso, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Scheme/Glueing/ProjectiveLine.lean, line 83. The attribute's comment: “projective_line_gluing”. References: EGA I (2.3.2), “partial”.
The isomorphism
φ₁₂of the gluing datum: the automorphism of the punctured affine line induced byT ↦ T⁻¹, which is the identificationy = 1/xof the two coordinates on the overlap.
noncomputable def projectiveLineInversionIso :
Spec (.of (LaurentPolynomial k)) ≅ Spec (.of (LaurentPolynomial k))
AlgebraicGeometry.projectiveLineGluingData, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Scheme/Glueing/ProjectiveLine.lean, line 126. The attribute's comment: “projective_line_gluing”.
The gluing datum for the projective line: two copies of
Spec k[X], glued alongD(X) = Spec k[T,T⁻¹]by inversion.
noncomputable def projectiveLineGluingData : Scheme.GlueData.{u}
AlgebraicGeometry.projectiveLine, an abbrev in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Scheme/Glueing/ProjectiveLine.lean, line 136. The attribute's comment: “projective_line_gluing”. References: EGA I (2.3.2), “gluing construction”.
The projective line over
k, constructed by gluing its two standard affine charts.
noncomputable abbrev projectiveLine : Scheme.{u}
AlgebraicGeometry.projectiveLineZero, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Scheme/Glueing/ProjectiveLine.lean, line 216. The attribute's comment: “projective_line_gluing”.
The point
0of the projective line, namely the point(X)in thex-chart.
def projectiveLineZero [IsDomain k] : projectiveLine k
AlgebraicGeometry.projectiveLineInfinity, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Scheme/Glueing/ProjectiveLine.lean, line 221. The attribute's comment: “projective_line_gluing”. References: EGA II (7.4.14).
The point
∞of the projective line, namely the point(X)in they-chart.
def projectiveLineInfinity [IsDomain k] : projectiveLine k
AlgebraicGeometry.affineLineOne, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Scheme/Glueing/ProjectiveLineAffineOpen.lean, line 162. The attribute's comment: “projective_line_one”.
The point
1of an affine-line chart, represented by the prime ideal(X - 1).
def affineLineOne : Spec (.of (Polynomial k))
AlgebraicGeometry.projectiveLineOne, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Scheme/Glueing/ProjectiveLineAffineOpen.lean, line 185. The attribute's comment: “projective_line_one”.
The point
1of the projective line, namely the point(x - 1)in thex-chart.
def projectiveLineOne : projectiveLine k
AlgebraicGeometry.projectiveLineYChart_affineLineOne, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Scheme/Glueing/ProjectiveLineAffineOpen.lean, line 190. The attribute's comment: “projective_line_one”.
The point
1is also the point(y - 1)of the second chart.
theorem projectiveLineYChart_affineLineOne :
projectiveLineYChart k (affineLineOne k) = projectiveLineOne k
AlgebraicGeometry.projectiveLineSChart, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Scheme/Glueing/ProjectiveLineAffineOpen.lean, line 1075. The attribute's comment: “projective_line_affine_open_through_zero_and_infinity”.
The third chart of the projective line: the affine line with coordinate
s = 1/(x-1) = y/(1-y), mapping onto the complement of the point1.
def projectiveLineSChart : Spec (.of (Polynomial k)) ⟶ projectiveLine k
AlgebraicGeometry.projectiveLineSXPiece_comp_projectiveLineSChart, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Scheme/Glueing/ProjectiveLineAffineOpen.lean, line 1082. The attribute's comment: “projective_line_affine_open_coordinate_ring”.
On
D(x-1) ⊂ X₁the third chart is the inclusion of that open into the first chart; equivalently,srestricts to1/(x-1)there.
theorem projectiveLineSXPiece_comp_projectiveLineSChart :
projectiveLineSXPiece k ≫ projectiveLineSChart k =
Spec.map (CommRingCat.ofHom (algebraMap (Polynomial k) (affineLineAwayOne k))) ≫
projectiveLineXChart k
AlgebraicGeometry.projectiveLineSYPiece_comp_projectiveLineSChart, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Scheme/Glueing/ProjectiveLineAffineOpen.lean, line 1091. The attribute's comment: “projective_line_affine_open_coordinate_ring”.
On
D(y-1) ⊂ X₂the third chart is the inclusion of that open into the second chart; equivalently,srestricts toy/(1-y)there.
theorem projectiveLineSYPiece_comp_projectiveLineSChart :
projectiveLineSYPiece k ≫ projectiveLineSChart k =
Spec.map (CommRingCat.ofHom (algebraMap (Polynomial k) (affineLineAwayOne k))) ≫
projectiveLineYChart k
AlgebraicGeometry.range_projectiveLineSChart, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Scheme/Glueing/ProjectiveLineAffineOpen.lean, line 1345. The attribute's comment: “projective_line_affine_open_through_zero_and_infinity”.
The image of the third chart is exactly the complement of the point
1:U = ℙ¹ \ {1}.
theorem range_projectiveLineSChart :
Set.range (projectiveLineSChart k).base = {projectiveLineOne k}ᶜ
AlgebraicGeometry.isAffineOpen_projectiveLineSChart, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Scheme/Glueing/ProjectiveLineAffineOpen.lean, line 1376. The attribute's comment: “projective_line_affine_open_through_zero_and_infinity”.
U = ℙ¹ \ {1}is an affine open.
theorem isAffineOpen_projectiveLineSChart :
IsAffineOpen (projectiveLineSChart k).opensRange
AlgebraicGeometry.projectiveLineZero_mem_opensRange_projectiveLineSChart, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Scheme/Glueing/ProjectiveLineAffineOpen.lean, line 1382. The attribute's comment: “projective_line_affine_open_through_zero_and_infinity”.
The point
0lies inU = ℙ¹ \ {1}.
theorem projectiveLineZero_mem_opensRange_projectiveLineSChart :
projectiveLineZero k ∈ (projectiveLineSChart k).opensRange
AlgebraicGeometry.projectiveLineInfinity_mem_opensRange_projectiveLineSChart, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Scheme/Glueing/ProjectiveLineAffineOpen.lean, line 1393. The attribute's comment: “projective_line_affine_open_through_zero_and_infinity”.
The point
∞lies inU = ℙ¹ \ {1}.
theorem projectiveLineInfinity_mem_opensRange_projectiveLineSChart :
projectiveLineInfinity k ∈ (projectiveLineSChart k).opensRange
AlgebraicGeometry.projectiveLineSChartIso, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Scheme/Glueing/ProjectiveLineAffineOpen.lean, line 1408. The attribute's comment: “projective_line_affine_open_coordinate_ring”.
U = ℙ¹ \ {1}is isomorphic toSpec k[s], and soΓ(U, O_U) = k[s].
def projectiveLineSChartIso :
Spec (.of (Polynomial k)) ≅ ((projectiveLineSChart k).opensRange).toScheme
AlgebraicGeometry.projectiveLineSChartSectionsIso, a def in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Scheme/Glueing/ProjectiveLineAffineOpen.lean, line 1422. The attribute's comment: “projective_line_affine_open_coordinate_ring”.
Γ(U, O_U)is the polynomial ringk[s], for the coordinates = 1/(x-1) = y/(1-y)ofAlgebraicGeometry.affineLineSOnXChartandAlgebraicGeometry.affineLineSOnYChart.
def projectiveLineSChartSectionsIso :
CommRingCat.of (Polynomial k) ≅ Γ(((projectiveLineSChart k).opensRange).toScheme, ⊤)
AlgebraicGeometry.mem_range_projectiveLinePuncturedChart_iff, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Scheme/Glueing/ProjectiveLinePoints.lean, line 66. The attribute's comment: “projective_line_overlap”.
The overlap
U₁₂of the two charts of the projective line, seen in the first chart, isD(x), the locus where the coordinate is invertible.
theorem mem_range_projectiveLinePuncturedChart_iff (y : Spec (.of (Polynomial k))) :
y ∈ Set.range (projectiveLinePuncturedChart k).base ↔
(Polynomial.X : Polynomial k) ∉ y.asIdeal
AlgebraicGeometry.mem_range_projectiveLineOverlapYInclusion_iff, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Scheme/Glueing/ProjectiveLinePoints.lean, line 80. The attribute's comment: “projective_line_overlap”.
The overlap
U₂₁of the two charts of the projective line, seen in the second chart, isD(y), the locus where the coordinate of that chart is invertible.
theorem mem_range_projectiveLineOverlapYInclusion_iff (y : Spec (.of (Polynomial k))) :
y ∈ Set.range (projectiveLineOverlapYInclusion k).base ↔
(Polynomial.X : Polynomial k) ∉ y.asIdeal
AlgebraicGeometry.eq_affineLineOrigin_of_X_mem, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Scheme/Glueing/ProjectiveLinePoints.lean, line 106. The attribute's comment: “projective_line_overlap”.
The complement of the overlap in a chart is the single point
0of that chart: the only point of the affine line over a field at which the coordinate vanishes is the origin.
theorem eq_affineLineOrigin_of_X_mem (y : Spec (.of (Polynomial k)))
(hy : (Polynomial.X : Polynomial k) ∈ y.asIdeal) : y = affineLineOrigin k
AlgebraicGeometry.projectiveLineZero_ne_projectiveLineInfinity, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Scheme/Glueing/ProjectiveLinePoints.lean, line 213. The attribute's comment: “projective_line_gluing”.
The points
0and∞of the projective line are distinct.
theorem projectiveLineZero_ne_projectiveLineInfinity (k : Type u) [Field k] :
projectiveLineZero k ≠ projectiveLineInfinity k
AlgebraicGeometry.infinite_projectiveLine, an instance in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Scheme/Glueing/ProjectiveLinePoints.lean, line 262. The attribute's comment: “projective_line_infinite”.
The projective line over a field is infinite.
instance infinite_projectiveLine (k : Type u) [Field k] : Infinite (projectiveLine k)
AlgebraicGeometry.isIso_constantsToGlobalSections, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Scheme/Glueing/ProjectiveLineSections.lean, line 155. The attribute's comment: “projective_line_global_sections”. References: EGA I (2.3.2), “Γ(X,O_X) ≅ K”.
The canonical map from
kto the global sections of the structure sheaf on the projective line overkis an isomorphism.
theorem isIso_constantsToGlobalSections (k : Type u) [CommRing k] :
IsIso ((Scheme.ΓSpecIso (.of k)).inv ≫
(projectiveLine k ↘ Spec (.of k)).appTop)
AlgebraicGeometry.not_isAffine_projectiveLine, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Scheme/Glueing/ProjectiveLineSections.lean, line 212. The attribute's comment: “projective_line_not_affine”. References: EGA I (2.3.2), “X not affine”.
The projective line over a field is not affine.
theorem not_isAffine_projectiveLine (k : Type u) [Field k] :
¬ IsAffine (projectiveLine k)
Sources
Section26.15 A representability criterion#
Section 26.15 of the Stacks Project, Tag 01JF. 5 tags here are carried by 3 declarations of the repository (all in StacksFrontier) and 6 registered declarations, quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 01JG, a definition
Tag 01JG in the Stacks Project.
Declarations registered for the tag:
CategoryTheory.Functor.IsRepresentableregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch26.lean, line 323 (StacksFrontier): “representable presheaf, on any category; here the category of schemes”. References: EGA 0 (8.1.8); EGA 0 (19.0.1); SGA 3 I (1.1); SGA 3 IV (3.3.2); SGA 4 I (1.4.1).
Tag 01JH, an example
Tag 01JH in the Stacks Project.
Declarations registered for the tag:
AlgebraicGeometry.AffineSpace.toSpecMvPolyIntEquivregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch26.lean, line 326 (StacksFrontier): “forn = Unit,Spec ℤ[x]representsT ↦ Γ(T, 𝒪_T); the universal family is the image ofx”. References: EGA I (3.3.15), “partial”; EGA IV (17.11.3), “base Spec ℤ”; SGA 1 II (4.8), “base Spec Z”.AlgebraicGeometry.AffineSpace.toSpecMvPolyIntEquiv_compregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch26.lean, line 328 (StacksFrontier): “naturality of the identification inT”. References: EGA I (3.3.15), “partial”.
Tag 01JI, a definition
Tag 01JI in the Stacks Project.
AlgebraicGeometry.Covers, an abbrev in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Schemes/ZariskiAndSeparation/FunctorOfPoints.lean, line 68. The attribute's comment: “part (4): covering by subfunctors”.
An indexed family of subfunctors covers a functor if each section belongs, after restriction to an indexed open covering, to the corresponding subfunctor.
public abbrev Covers {C : Type u} [Category.{v} C] (toTop : C ⥤ TopCat.{u'})
(isOpenImmersion : MorphismProperty C) (F : Cᵒᵖ ⥤ Type w) {I : Type v'}
(H : I → Subfunctor F) : Prop
Declarations registered for the tag:
CategoryTheory.Presheaf.IsSheafregistered withadd_to_stacksin StacksFrontier/AlgebraicGeometry/Schemes/ZariskiAndSeparation/FunctorOfPoints.lean, line 49 (StacksFrontier): “part (1): Zariski sheaf property”. References: EGA 0 (3.1.2); EGA 0 (3.1.4); SGA 3 IV (4.3.1), “more general”; SGA 3 IV (4.3.18); SGA 4 II (2.1), “more general”; SGA 4 II (2.7); SGA 4 II (6.1); SGA 4 II (6.2); SGA 4 II (6.3.2), “partial”; SGA 4½ Arcata (1.2.3), “more general”; SGA 7 VI (3.1(a)), “partial”.CategoryTheory.Subfunctorregistered withadd_to_stacksin StacksFrontier/AlgebraicGeometry/Schemes/ZariskiAndSeparation/FunctorOfPoints.lean, line 61 (StacksFrontier): “part (2): subfunctors”. References: SGA 3 I (1.2); SGA 3 IV (4.1.1), “more general”.CategoryTheory.MorphismProperty.presheafregistered withadd_to_stacksin StacksFrontier/AlgebraicGeometry/Schemes/ZariskiAndSeparation/FunctorOfPoints.lean, line 62 (StacksFrontier): “part (3): representability by open immersions”.
Tag 01JJ, a lemma
Tag 01JJ in the Stacks Project.
AlgebraicGeometry.Space.isRepresentable_of_openCover, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Spaces/SiteGluing.lean, line 639. The attribute's comment: “big fppf site over a scheme”.
Stacks 01JJ for the big fppf site over
S. A sheaf on the big fppf site overSwhich admits a jointly locally surjective family of relatively representable open immersions from representable presheaves is representable, by an object of that site.This is the statement Mathlib's
AlgebraicGeometry.Scheme.LocalRepresentability.isRepresentabledoes not give: Mathlib glues inSchemewith no size control, so its representing object need not satisfy the site's size cutoff. The hypothesis on the index type is one set-theoretic condition which makes the glued scheme an object of the site; an at most countable family satisfies it automatically, since uncountable cofinality of the cutoff is a field ofAlgebraicGeometry.BigFppfSite. It is not the weakest such condition:AlgebraicGeometry.Space.isRepresentable_of_openCover_of_containsasks only that the glued scheme lie in the site, however that is established.
theorem isRepresentable_of_openCover (hι : #ι < B.cutoff.ord.cof)
[HasCoproduct fun i => yoneda.obj (X i)]
(hsurj : Presheaf.IsLocallySurjective (BigFppfOver.topology B S hS) (Sigma.desc f)) :
G.obj.IsRepresentable
Tag 01JK, a remark
Tag 01JK in the Stacks Project.
AlgebraicGeometry.lrsRepresentableByScheme, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Scheme/Glueing/MorphismsIntoGluing/RepresentableByScheme.lean, line 831.
A Zariski sheaf on locally ringed spaces, covered by subfunctors represented by schemes and relatively represented by open immersions, is itself represented by a scheme.
public theorem lrsRepresentableByScheme
(F : LocallyRingedSpace.{u}ᵒᵖ ⥤ Type u)
(hF : Presheaf.IsSheaf lrsZariskiTopology F)
{I : Type v} [Small.{u} I] (H : I → Subfunctor F)
(hrep : ∀ i, ∃ S : Scheme.{u}, Nonempty ((H i).toFunctor.RepresentableBy
S.toLocallyRingedSpace))
(hopen : ∀ i, (MorphismProperty.presheaf
lrsIsOpenImmersion.{u}) (H i).ι)
(hcover : Covers LocallyRingedSpace.forgetToTop
lrsIsOpenImmersion.{u} F H) :
∃ S : Scheme.{u}, Nonempty (F.RepresentableBy S.toLocallyRingedSpace)
Sources
Section26.16 Existence of fibre products of schemes#
Section 26.16 of the Stacks Project, Tag 01JL. 2 tags here are carried by 2 declarations of the repository (all in StacksFrontier) and 3 registered declarations, quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 01JM, a lemma
Tag 01JM in the Stacks Project.
Declarations registered for the tag:
AlgebraicGeometry.instHasFiniteLimitsSchemeregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch26.lean, line 331 (StacksFrontier): “finite limits”. References: EGA I (3.2.6), “more general”; EGA I (3.3.5), “more general”.AlgebraicGeometry.specZIsTerminalregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch26.lean, line 332 (StacksFrontier): “the final objectSpec ℤ”. References: EGA I (3.3.15).AlgebraicGeometry.Scheme.Pullback.instHasPullbacksregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch26.lean, line 333 (StacksFrontier): “fibre products”. References: EGA I (3.2.6); EGA I (3.3.5), “existence for n = 2”.
Tag 01JN, a remark
Tag 01JN in the Stacks Project.
AlgebraicGeometry.Scheme.isPullback_toLRSHom, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Limits/LocallyRingedSpaceFibreProduct.lean, line 477.
The fibre product of two morphisms of schemes, formed in
Scheme, is already the fibre product in locally ringed spaces. Neither leg of the cospan is assumed to be an open immersion.
theorem isPullback_toLRSHom {X Y S : Scheme.{u}} (f : X ⟶ S) (g : Y ⟶ S) :
IsPullback (pullback.fst f g).toLRSHom (pullback.snd f g).toLRSHom f.toLRSHom g.toLRSHom
AlgebraicGeometry.LocallyRingedSpace.hasPullback_of_scheme, an instance in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Limits/LocallyRingedSpaceFibreProduct.lean, line 518.
The fibre product of two morphisms of schemes exists in the category of locally ringed spaces.
instance hasPullback_of_scheme {X Y S : Scheme.{u}} (f : X ⟶ S) (g : Y ⟶ S) :
HasPullback f.toLRSHom g.toLRSHom
Sources
Section26.17 Fibre products of schemes#
Section 26.17 of the Stacks Project, Tag 01JO. 7 tags here are carried by 3 declarations of the repository (all in StacksFrontier) and 13 registered declarations, quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 01JP, a definition
Tag 01JP in the Stacks Project.
Declarations registered for the tag:
CategoryTheory.Limits.pullbackregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch26.lean, line 335 (StacksFrontier): “the fibre productX ×_S Y”. References: EGA I (3.3.5); EGA I (3.3.6), “more general”; EGA I (3.3.13); EGA II (6.5.8); EGA III (1.4.15); EGA III (6.1.1); EGA III (6.9.1), “partial”; EGA III (6.10.4), “partial”; EGA III (7.7.2); EGA IV (9.4.9); EGA IV (17.4.5); EGA IV (17.7.11), “partial”; SGA 1 II (4.13); SGA 1 XIII (6.1); SGA 3 IV (3.3.1); SGA 3 IX (2.10), “partial”; SGA 3 VIIB (2.4.1); SGA 3 V (1.2); SGA 4 I (2.1.1); SGA 4 I (10.9); SGA 4 XVII (0.9), “n = 2”; SGA 5 IIIB (6.5); SGA 6 VII (3.7); SGA 6 VIII (1.3); SGA 7 XIV (4.5), “partial”; SGA 7 XXII (2.2).CategoryTheory.Limits.pullback.fstregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch26.lean, line 336 (StacksFrontier): “the projectionp”. References: EGA I (3.2.1), “more general”; SGA 4 I (10.9).CategoryTheory.Limits.pullback.sndregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch26.lean, line 337 (StacksFrontier): “the projectionq”. References: EGA I (3.2.1), “more general”; EGA I (3.3.6), “more general”; SGA 4 I (10.9).CategoryTheory.Limits.pullbackIsPullbackregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch26.lean, line 338 (StacksFrontier): “the square is universal”.
Tag 01JQ, a lemma
Tag 01JQ in the Stacks Project.
Declarations registered for the tag:
AlgebraicGeometry.Scheme.Pullback.isAffine_of_isAffine_isAffine_isAffineregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch26.lean, line 340 (StacksFrontier). References: EGA I (3.2.2), “partial”; EGA I (3.3.13), “Affineness of X ×_S S′”; EGA II (1.4.6), “special case”; EGA II (1.5.4), “special case”; EGA II (1.5.5), “special case”; EGA II (1.6.2), “(iii), special case”; EGA III (6.5.2), “Affineness clause”.
Tag 01JR, a lemma
Tag 01JR in the Stacks Project.
Declarations registered for the tag:
AlgebraicGeometry.Scheme.pullback_map_isOpenImmersionregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch26.lean, line 342 (StacksFrontier): “the canonical morphismV ×_U W ⟶ X ×_S Yis an open immersion”. References: EGA I (4.3.1), “more general”.AlgebraicGeometry.Scheme.Pullback.range_mapregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch26.lean, line 344 (StacksFrontier): “its image isp⁻¹(V) ∩ q⁻¹(W)”.
Tag 01JS, a lemma
Tag 01JS in the Stacks Project.
AlgebraicGeometry.Scheme.Pullback.isAffine_openCoverOfBase_bind_openCoverOfLeftRight, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Limits/AffineFibreProductCover.lean, line 35. References: EGA III (6.5.2), “more general”; EGA III (6.6.4), “partial”.
Every member of the open cover of a fibre product assembled from affine open covers over an affine open cover of the base is affine.
theorem isAffine_openCoverOfBase_bind_openCoverOfLeftRight
{X Y S : Scheme.{u}} (f : X ⟶ S) (g : Y ⟶ S)
(𝒰 : Scheme.OpenCover.{v} S)
(𝒱 : ∀ i : 𝒰.I₀, Scheme.OpenCover.{w} (pullback f (𝒰.f i)))
(𝒲 : ∀ i : 𝒰.I₀, Scheme.OpenCover.{t} (pullback g (𝒰.f i)))
(h𝒰 : ∀ i, IsAffine (𝒰.X i))
(h𝒱 : ∀ i j, IsAffine ((𝒱 i).X j))
(h𝒲 : ∀ i k, IsAffine ((𝒲 i).X k)) :
∀ a : ((Scheme.Pullback.openCoverOfBase 𝒰 f g).bind fun i =>
Scheme.Pullback.openCoverOfLeftRight (𝒱 i) (𝒲 i)
(pullback.snd f (𝒰.f i)) (pullback.snd g (𝒰.f i))).I₀,
IsAffine (((Scheme.Pullback.openCoverOfBase 𝒰 f g).bind fun i =>
Scheme.Pullback.openCoverOfLeftRight (𝒱 i) (𝒲 i)
(pullback.snd f (𝒰.f i)) (pullback.snd g (𝒰.f i))).X a)
Tag 01JT, a lemma
Tag 01JT in the Stacks Project.
AlgebraicGeometry.Scheme.Pullback.isIso_residueFieldMap_specTensorTo_comp_residueFieldIso, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Scheme/BaseChange/Points.lean, line 78. The attribute's comment: “residue fields”.
Stacks Project, Tag 01JT (residue fields). For a point of the fibre product represented by a prime
pofκ(x) ⊗[κ(s)] κ(y), the canonical map from the residue field of the corresponding point to the residue field atpis an isomorphism.
public theorem isIso_residueFieldMap_specTensorTo_comp_residueFieldIso
(T : Scheme.Pullback.Triplet f g) (p : Spec T.tensor) :
IsIso (T.SpecTensorTo.residueFieldMap p ≫
(Scheme.Spec.residueFieldIso T.tensor p).hom)
Declarations registered for the tag:
AlgebraicGeometry.Scheme.Pullback.carrierEquivregistered withadd_to_stacksin StacksFrontier/AlgebraicGeometry/Scheme/BaseChange/Points.lean, line 50 (StacksFrontier): “points”. References: EGA I (3.4.9), “partial”; SGA 3 V (7.3), “partial”.
Tag 01JU, a lemma
Tag 01JU in the Stacks Project.
Stacks.ClosedImmersion.existsUnique_idealSheaf_pullbackSnd_iso_pullbackIdeal, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Scheme/Immersion/BaseChange.lean, line 226. The attribute's comment: “part (1): inverse-image ideal”.
Stacks Project, Tag 01JU, part (1). Let
f : X ⟶ Sbe a closed immersion of schemes corresponding to the sheaf of idealsi : I ⟶ 𝒪_S, and letg : Y ⟶ Sbe any morphism of schemes. Then the base changeX ×_S Y ⟶ Y, which is a closed immersion byAlgebraicGeometry.IsClosedImmersion.isStableUnderBaseChange, corresponds to the inverse-image idealIm(g^* I ⟶ 𝒪_Y): its ideal sheaf is that ideal, by a unique isomorphism compatible with the two inclusions into𝒪_Y.
theorem existsUnique_idealSheaf_pullbackSnd_iso_pullbackIdeal {X Y S : Scheme.{u}} (f : X ⟶ S)
(g : Y ⟶ S) [hcl : AlgebraicGeometry.IsClosedImmersion f]
(I : SheafOfModules.{u} (structureSheafRing S.toLocallyRingedSpace.toRingedSpace))
(i : I ⟶ SheafOfModules.unit (structureSheafRing S.toLocallyRingedSpace.toRingedSpace))
(e : I ≅ idealSheaf f.toLRSHom.toShHom)
(he : e.hom ≫ kernel.ι (SheafOfModules.unitToPushforwardObjUnit
(structureSheafHom f.toLRSHom.toShHom)) = i) :
∃! e' : idealSheaf (pullback.snd f g).toLRSHom.toShHom ≅ pullbackIdeal g.toLRSHom I i,
e'.hom ≫ pullbackIdealInclusion g.toLRSHom I i =
kernel.ι (SheafOfModules.unitToPushforwardObjUnit
(structureSheafHom (pullback.snd f g).toLRSHom.toShHom))
Declarations registered for the tag:
AlgebraicGeometry.IsClosedImmersion.isStableUnderBaseChangeregistered withadd_to_stacksin StacksFrontier/AlgebraicGeometry/Scheme/Immersion/BaseChange.lean, line 64 (StacksFrontier): “part (1): closed immersion”. References: EGA I (10.14.5), “(ii), ordinary schemes”; EGA I (4.3.1), “special case”; EGA I (4.3.2); EGA I (4.5.5), “(iii), special case”; EGA II (8.10.2), “j′ is a closed immersion”; EGA IV (17.13.1), “closed immersions”; EGA IV (2.7.1), “implication”; EGA IV (8.6.2), “more general”; SGA 1 VIII (5.5), “closed-immersion clause”; SGA 3 VIB (10.1), “partial”; SGA 4 XII (4.3), “Parenthetical clause”.AlgebraicGeometry.isOpenImmersion_stableUnderBaseChangeregistered withadd_to_stacksin StacksFrontier/AlgebraicGeometry/Scheme/Immersion/BaseChange.lean, line 66 (StacksFrontier): “part (2): open immersion”. References: EGA I (4.3.1), “special case”; EGA I (4.3.2); EGA I (4.5.5), “(iii), special case”; EGA IV (11.9.5), “Geometric clause”; EGA IV (2.7.1), “(x)”; SGA 1 VIII (5.5), “open-immersion clause”; SGA 3 VIB (10.1), “open immersions”; SGA 6 VIII (1.6), “partial”.AlgebraicGeometry.IsImmersion.isStableUnderBaseChangeregistered withadd_to_stacksin StacksFrontier/AlgebraicGeometry/Scheme/Immersion/BaseChange.lean, line 68 (StacksFrontier): “part (3): immersion”. References: EGA I (4.3.1), “special case”; EGA I (4.3.2); EGA I (4.5.5), “(iii), special case”; EGA II (3.8.1), “Immersion clause”; EGA IV (17.13.1); SGA 3 VIB (10.1), “partial”.
Tag 01JV, a definition
Tag 01JV in the Stacks Project.
Declarations registered for the tag:
AlgebraicGeometry.Scheme.IdealSheafData.comapregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch26.lean, line 346 (StacksFrontier): “the inverse image of a closed subscheme, as an ideal sheaf”.AlgebraicGeometry.Scheme.IdealSheafData.comapIsoregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch26.lean, line 348 (StacksFrontier): “the closed subscheme it cuts out isZ ×_Y X”. References: EGA IV (19.4.1), “more general”.
Sources
Section26.18 Base change in algebraic geometry#
Section 26.18 of the Stacks Project, Tag 01JW. 5 tags here are carried by 3 declarations of the repository (all in StacksFrontier) and 15 registered declarations, quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 01JX, a definition
Tag 01JX in the Stacks Project.
Declarations registered for the tag:
AlgebraicGeometry.Scheme.Overregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch26.lean, line 194 (StacksFrontier): “(1) a scheme over S; (2) is the case S = Spec R”. References: EGA I (2.5.1); EGA II (8.3.1), “partial”; SGA 3 VIB (2.0); SGA 5 III (3.2), “more general”.AlgebraicGeometry.Scheme.Hom.IsOverregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch26.lean, line 196 (StacksFrontier): “(3) a morphism of schemes over S”. References: EGA I (2.5.2); EGA I (2.5.5); EGA I (3.3.14); EGA IV (14.5.8).AlgebraicGeometry.Scheme.Hom.isOver_iffregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch26.lean, line 197 (StacksFrontier): “(3) the defining condition of a morphism over S”. References: EGA I (2.5.2); EGA I (2.5.5), “more general”; EGA I (3.3.14), “more general”.AlgebraicGeometry.Scheme.asOverregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch26.lean, line 199 (StacksFrontier): “(4) Mor_S(X, Y) as the hom-set from X.asOver S to Y.asOver S in Over S”. References: SGA 5 III (3.2), “more general”.AlgebraicGeometry.Scheme.canonicallyOverPullbackregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch26.lean, line 201 (StacksFrontier): “(5) the base change of X as a scheme over S'; (7) is the affine case”. References: EGA I (3.3.6).CategoryTheory.Over.pullbackregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch26.lean, line 203 (StacksFrontier): “(5) and (6) base change of schemes and morphisms over S, as a functor”. References: EGA I (3.3.7), “more general”; EGA IV (8.2.6); SGA 3 I (1.6); SGA 4 III (5.5); SGA 4 IV (5.2), “more general”; SGA 4 IV (5.5).
Tag 01JY, a lemma
Tag 01JY in the Stacks Project.
Declarations registered for the tag:
AlgebraicGeometry.IsImmersion.isStableUnderBaseChangeregistered withadd_to_stacksin StacksFrontier/AlgebraicGeometry/Morphisms/ImmersionBaseChange.lean, line 26 (StacksFrontier): “immersion”. References: EGA I (4.3.1), “special case”; EGA I (4.3.2); EGA I (4.5.5), “(iii), special case”; EGA II (3.8.1), “Immersion clause”; EGA IV (17.13.1); SGA 3 VIB (10.1), “partial”.AlgebraicGeometry.IsClosedImmersion.isStableUnderBaseChangeregistered withadd_to_stacksin StacksFrontier/AlgebraicGeometry/Morphisms/ImmersionBaseChange.lean, line 33 (StacksFrontier): “closed immersion”. References: EGA I (10.14.5), “(ii), ordinary schemes”; EGA I (4.3.1), “special case”; EGA I (4.3.2); EGA I (4.5.5), “(iii), special case”; EGA II (8.10.2), “j′ is a closed immersion”; EGA IV (17.13.1), “closed immersions”; EGA IV (2.7.1), “implication”; EGA IV (8.6.2), “more general”; SGA 1 VIII (5.5), “closed-immersion clause”; SGA 3 VIB (10.1), “partial”; SGA 4 XII (4.3), “Parenthetical clause”.AlgebraicGeometry.isOpenImmersion_stableUnderBaseChangeregistered withadd_to_stacksin StacksFrontier/AlgebraicGeometry/Morphisms/ImmersionBaseChange.lean, line 52 (StacksFrontier): “open immersion”. References: EGA I (4.3.1), “special case”; EGA I (4.3.2); EGA I (4.5.5), “(iii), special case”; EGA IV (11.9.5), “Geometric clause”; EGA IV (2.7.1), “(x)”; SGA 1 VIII (5.5), “open-immersion clause”; SGA 3 VIB (10.1), “open immersions”; SGA 6 VIII (1.6), “partial”.
Tag 01JZ, a definition
Tag 01JZ in the Stacks Project.
CategoryTheory.IsStableUnderBaseChange, a class in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Scheme/BaseChange/Stability.lean, line 62. The attribute's comment: “part (1): properties of objects over a base”.
A family of properties of objects over a base is stable under base change if the property passes across every pullback square.
public class IsStableUnderBaseChange
(P : (S : C) → ObjectProperty (Over S)) : Prop
CategoryTheory.MorphismPropertyOverBase.IsStableUnderBaseChange, a class in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Scheme/BaseChange/Stability.lean, line 85. The attribute's comment: “part (2): properties of morphisms over a base”. References: EGA I (3.5.1), “more general”; EGA I (5.5.12); SGA 3 VIB (2.0), “stable under base change”; SGA 3 IV (4.7), “more general”; SGA 3 VIB (10.1).
A family of properties of morphisms over a base is stable under arbitrary base change if it passes across every pair of pullback squares defining the base change of a morphism.
public class IsStableUnderBaseChange : Prop
Declarations registered for the tag:
CategoryTheory.MorphismProperty.IsStableUnderBaseChangeregistered withadd_to_stacksin StacksFrontier/AlgebraicGeometry/Scheme/BaseChange/Stability.lean, line 169 (StacksFrontier): “part (2), base-independent properties”. References: EGA I (3.5.1); EGA I (5.5.12); SGA 3 IV (3.4.1), “(a)”; SGA 3 IV (4.6.3); SGA 3 IV (4.7); SGA 3 VIB (10.1); SGA 3 VIB (2.0); SGA 3 XXIV (7.1.9); SGA 4 IV (8.5.4); SGA 4 IV (9.1.7), “ST1”; SGA 4 VII (5.4); SGA 4 Vbis (3.3).
Tag 01K0, a definition
Tag 01K0 in the Stacks Project.
Declarations registered for the tag:
AlgebraicGeometry.Scheme.Hom.fiberregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch26.lean, line 205 (StacksFrontier): “the scheme theoretic fibre”. References: EGA I (3.6.2); EGA II (1.5.3); EGA II (6.1.7); EGA III (4.6.2); EGA III (4.6.7), “partial”; EGA III (6.9.10); EGA IV (6.15.3); EGA IV (8.11.5.1); EGA IV (9.4.1); EGA IV (11.2.8); EGA IV (15.4.1); EGA IV (1.8.7); SGA 1 II (2.4); SGA 6 III (4.6), “partial”; SGA 6 III (4.6.1); SGA 7 XVIII (5.1).AlgebraicGeometry.Scheme.Hom.fiberToSpecResidueFieldregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch26.lean, line 206 (StacksFrontier): “the projection from the fibre to Spec κ(s)”. References: EGA I (3.6.2); EGA II (1.5.3); EGA II (6.1.7); EGA III (4.6.2); EGA IV (6.15.3); EGA IV (8.11.5.1); EGA IV (11.2.8); EGA IV (17.8.2), “special case”; SGA 7 XVIII (5.1).AlgebraicGeometry.Scheme.Hom.fiberOverSpecResidueFieldregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch26.lean, line 208 (StacksFrontier): “the fibre as a scheme over κ(s)”. References: EGA I (3.6.2); EGA I (3.7.2), “more general”; EGA II (1.5.3); EGA II (6.1.7); EGA III (4.2.1), “special case”; EGA IV (6.15.3); EGA IV (8.11.5.1); EGA IV (11.2.8); EGA IV (17.7.11), “partial”; SGA 1 IX (6.1); SGA 3 XXVI (7.15); SGA 7 VIII (7.0).
Tag 01K1, a lemma
Tag 01K1 in the Stacks Project.
AlgebraicGeometry.Scheme.Hom.isEmbedding_fiberι_and_pullbackSnd_fromSpecStalk, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Morphisms/Fibres/EmbeddingOverPoint.lean, line 43.
Let
f : X ⟶ Sbe a morphism of schemes ands ∈ S. Both the inclusion of the fibreX_s = X ×_S Spec κ(s) ⟶ Xand the projectionSpec 𝒪_{S,s} ×_S X ⟶ Xare homeomorphisms onto their images.
theorem isEmbedding_fiberι_and_pullbackSnd_fromSpecStalk {X S : Scheme.{u}} (f : X ⟶ S)
(s : S) :
IsEmbedding (f.fiberι s) ∧ IsEmbedding (pullback.snd (S.fromSpecStalk s) f)
Declarations registered for the tag:
AlgebraicGeometry.instIsPreimmersionFiberιregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch26.lean, line 210 (StacksFrontier): “first diagram: X_s → X is a preimmersion, so an embedding”. References: SGA 7 XVIII (5.1), “k is a preimmersion”.AlgebraicGeometry.Scheme.Hom.fiberHomeoregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch26.lean, line 212 (StacksFrontier): “first diagram: X_s is homeomorphic to its image, the set-theoretic fibre”. References: EGA I (3.5.10), “special case”; EGA I (3.6.1), “special case”; EGA I (3.6.2); EGA II (1.5.3), “partial”; EGA III (4.6.2), “partial”; EGA IV (9.4.1); EGA IV (11.2.8); EGA IV (15.4.1); EGA IV (1.8.7), “partial”; SGA 7 XVIII (5.1), “partial”.
Sources
Section26.19 Quasi-compact morphisms#
Section 26.19 of the Stacks Project, Tag 01K2. 7 tags here are carried by 4 declarations of the repository (all in StacksFrontier) and 6 registered declarations, quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 01K3, a definition
Tag 01K3 in the Stacks Project.
Declarations registered for the tag:
AlgebraicGeometry.QuasiCompactregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch26.lean, line 214 (StacksFrontier). References: EGA 0 (9.1.1), “special case”; EGA I (6.6.1); EGA IV (1.1.1); SGA 1 XIII (1.5); SGA 4 Vbis (4.2.0), “partial”; SGA 6 II (3.0); SGA 7 VII (1.3.8), “partial”.
Tag 01K4, a lemma
Tag 01K4 in the Stacks Project.
AlgebraicGeometry.quasiCompact_tfae, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Morphisms/QuasiCompactAffineCover.lean, line 44.
For a morphism of schemes
f : X ⟶ Sthe following are equivalent: 1.fis quasi-compact; 2. the preimage of every affine open ofSis quasi-compact; 3. there is a coveringS = ⋃ᵢ Uᵢby affine opens such that everyf⁻¹(Uᵢ)is quasi-compact.
theorem quasiCompact_tfae {X S : Scheme.{u}} (f : X ⟶ S) :
List.TFAE [QuasiCompact f,
∀ U : S.Opens, IsAffineOpen U → IsCompact (f ⁻¹ᵁ U : Set X),
∃ (ι : Type u) (U : ι → S.Opens), (∀ i, IsAffineOpen (U i)) ∧ iSup U = ⊤ ∧
∀ i, IsCompact (f ⁻¹ᵁ U i : Set X)]
Declarations registered for the tag:
AlgebraicGeometry.quasiCompact_iff_forall_isAffineOpenregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch26.lean, line 215 (StacksFrontier): “(1) ⇔ (2)”. References: EGA IV (1.8.1), “more general”.
Tag 01K5, a lemma
Tag 01K5 in the Stacks Project.
Declarations registered for the tag:
AlgebraicGeometry.quasiCompact_isStableUnderBaseChangeregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch26.lean, line 216 (StacksFrontier). References: EGA I (6.3.4), “clause (iv)”; EGA I (6.6.4); EGA III (6.9.1), “partial”; EGA III (6.9.4), “more general”; EGA III (7.7.2), “quasi-compactness of f'”; EGA IV (1.1.2); EGA IV (2.3.7), “(i)”; EGA IV (2.6.4), “necessity in (v)”; SGA 1 VIII (3.3), “quasi-compact clause”; SGA 4 VI (1.8), “(ii), special case”; SGA 4 VI (1.9.1), “(ii), special case”; SGA 4 VIII (5.1), “partial”; SGA 7 VII (1.3.8), “partial”.
Tag 01K6, a lemma
Tag 01K6 in the Stacks Project.
Declarations registered for the tag:
AlgebraicGeometry.quasiCompact_compregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch26.lean, line 217 (StacksFrontier). References: EGA I (6.6.4); EGA IV (1.1.2); SGA 4 VI (1.8), “(i), special case”; SGA 4 VI (1.9.1), “(i), special case”.
Tag 01K7, a lemma
Tag 01K7 in the Stacks Project.
Declarations registered for the tag:
AlgebraicGeometry.instUniversallyClosedOfIsClosedImmersionregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch26.lean, line 218 (StacksFrontier): “step 1: a closed immersion is universally closed”. References: EGA II (5.4.9), “5.4.2(i)”; EGA II (6.1.10), “closed immersions”; EGA IV (2.4.3).AlgebraicGeometry.instQuasiCompactOfUniversallyClosedregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch26.lean, line 220 (StacksFrontier): “step 2: a universally closed morphism is quasi-compact”.
Tag 01K8, an example
Tag 01K8 in the Stacks Project.
AlgebraicGeometry.puncturedInfiniteAffineSpace_carrier, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Schemes/ZariskiAndSeparation/QuasiCompact.lean, line 79. The attribute's comment: “the punctured spectrum”.
The union of the coordinate basic opens is precisely the complement of the origin.
public theorem puncturedInfiniteAffineSpace_carrier (k : Type u) [Field k] :
(puncturedInfiniteAffineSpace k : Set (infiniteAffineSpace k)) =
{p : PrimeSpectrum (MvPolynomial ℕ k) |
p.asIdeal ≠ Ideal.span (Set.range (MvPolynomial.X : ℕ → MvPolynomial ℕ k))}
AlgebraicGeometry.puncturedInfiniteAffineSpace_ι_not_quasiCompact, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Schemes/ZariskiAndSeparation/QuasiCompact.lean, line 98. The attribute's comment: “not quasi-compact”.
The open immersion of the punctured infinite-dimensional affine space is not quasi-compact.
public theorem puncturedInfiniteAffineSpace_ι_not_quasiCompact (k : Type u) [Field k] :
¬ QuasiCompact (puncturedInfiniteAffineSpace k).ι
Tag 05JL, a lemma
Tag 05JL in the Stacks Project.
AlgebraicGeometry.isClosed_range_iff_stableUnderSpecialization, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Scheme/Valuative/Specialization.lean, line 207.
The image of a quasi-compact morphism of schemes is closed if and only if it is stable under specialization.
public theorem isClosed_range_iff_stableUnderSpecialization
{X S : Scheme.{u}} (f : X ⟶ S) [QuasiCompact f] :
IsClosed (Set.range (f : X → S)) ↔
StableUnderSpecialization (Set.range (f : X → S))
Sources
Section26.20 Valuative criterion for universal closedness#
Section 26.20 of the Stacks Project, Tag 01KA. 5 tags here are carried by 4 declarations of the repository (all in StacksFrontier) and 4 registered declarations, quoted below from AxiomMath/Stacks at commit 5ed82d14.
Tag 01KB, a definition
Tag 01KB in the Stacks Project.
Declarations registered for the tag:
AlgebraicGeometry.UniversallyClosedregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch26.lean, line 222 (StacksFrontier). References: EGA II (5.4.1); EGA II (5.4.9).
Tag 01KC, a lemma
Tag 01KC in the Stacks Project.
Declarations registered for the tag:
AlgebraicGeometry.universallyClosed_eq_universallySpecializingregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch26.lean, line 223 (StacksFrontier): “(1) and (2)”.
Tag 01KD, a definition
Tag 01KD in the Stacks Project.
Declarations registered for the tag:
AlgebraicGeometry.ValuativeCriterion.Existenceregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch26.lean, line 248 (StacksFrontier): “existence part of the valuative criterion”.AlgebraicGeometry.ValuativeCriterion.Uniquenessregistered withadd_to_stacksin StacksFrontier/MathlibRegistrations/Ch26.lean, line 250 (StacksFrontier): “uniqueness part of the valuative criterion”.
Tag 01J8, a lemma
Tag 01J8 in the Stacks Project.
AlgebraicGeometry.exists_valuation_ring_of_specializes, a lemma in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Scheme/Valuative/Specialization.lean, line 49.
A specialization of points of a scheme is witnessed by a valuation ring. The valuation ring may be chosen so that the residue-field extension at its generic point is any prescribed extension.
public lemma exists_valuation_ring_of_specializes (S : AlgebraicGeometry.Scheme.{u})
{s' s : S} (h : s' ⤳ s) (K : Type u) [Field K]
(i : S.residueField s' ⟶ CommRingCat.of K) :
∃ (A : Type u) (_ : CommRing A) (_ : IsDomain A) (_ : ValuationRing A)
(f : AlgebraicGeometry.Spec (.of A) ⟶ S)
(e : (AlgebraicGeometry.Spec (.of A)).residueField
(genericPoint (AlgebraicGeometry.Spec (.of A))) ≅ CommRingCat.of K)
(hη : f (genericPoint (AlgebraicGeometry.Spec (.of A))) = s'),
f (closedPoint A) = s ∧
(S.residueFieldCongr hη).inv ≫
f.residueFieldMap (genericPoint (AlgebraicGeometry.Spec (.of A))) ≫ e.hom = i
Tag 01KG, an example
Tag 01KG in the Stacks Project.
AlgebraicGeometry.projectiveLine_valuativeCriterion_existence, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Scheme/Glueing/ProjectiveLineUniversallyClosed.lean, line 127. The attribute's comment: “valuative extension”.
Every valuative square for the structure morphism of the projective line has a diagonal lift.
theorem projectiveLine_valuativeCriterion_existence (k : Type u) [CommRing k] :
ValuativeCriterion.Existence
(projectiveLine k ↘ Spec (.of k))
AlgebraicGeometry.projectiveLine_quasiCompact, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Scheme/Glueing/ProjectiveLineUniversallyClosed.lean, line 346. The attribute's comment: “quasi-compactness”.
The structure morphism of the projective line is quasi-compact.
theorem projectiveLine_quasiCompact (k : Type u) [CommRing k] :
QuasiCompact (projectiveLine k ↘ Spec (.of k))
AlgebraicGeometry.projectiveLine_universallyClosed, a theorem in StacksFrontier (drafted, not yet reviewed), declared in StacksFrontier/AlgebraicGeometry/Scheme/Glueing/ProjectiveLineUniversallyClosed.lean, line 353. The attribute's comment: “universal closedness”.
The structure morphism of the projective line is universally closed.
theorem projectiveLine_universallyClosed (k : Type u) [CommRing k] :
UniversallyClosed (projectiveLine k ↘ Spec (.of k))
Sources
Loading dependency explorer…
The dependency explorer needs JavaScript and its graph data.