2.3. Projective morphisms
Lean names in this section are shown relative to AlgebraicGeometry.Scheme, AlgebraicGeometry, CategoryTheory.
Kollár's resolutions are projective morphisms [Kol07, (2) and (3)]. Mathlib has
Proj of a graded ring, its functoriality in the ring and sheaves of modules on a scheme with
the notion of a quasi-coherent sheaf of finite type, but no projective bundle over a base scheme and
no projective morphism. The library defines them as in EGA and the Stacks project: the projective
bundle \mathbf{P}(\mathcal{E}) = \operatorname{Proj}_X (\operatorname{Sym} \mathcal{E}) of a
quasi-coherent sheaf \mathcal{E} is glued from \operatorname{Proj} of the symmetric algebras of
its modules of sections over the affine opens, as the blow-up is glued from the affine blow-ups
(The blow-up along an ideal sheaf); a morphism is projective if it is a
closed immersion into such a bundle, with \mathcal{E} of finite type, followed by the projection.
The resolutions of the theorems are composites of successions of blow-ups, and these are projective.
2.3.1. The symmetric algebra and the projective bundle of a module
-
SymmetricAlgebra.grading[complete] -
SymmetricAlgebra.gradedι[complete] -
SymmetricAlgebra.gradedAlgebra[complete] -
SymmetricAlgebra.gradingZeroEquiv[complete] -
SymmetricAlgebra.algebraOfRingHom[complete] -
SymmetricAlgebra.ιₛₗ[complete] -
SymmetricAlgebra.gradedMap[complete]
Mathlib's SymmetricAlgebra R M is the free commutative R-algebra on an R-module M; the
library grades it. The n-th piece SymmetricAlgebra.grading R M n is
\operatorname{Sym}^n M = \iota(M)^n, the n-th power of the submodule spanned by the image of
M; the lift of the inclusion of M in degree one into the direct sum of the pieces
(SymmetricAlgebra.gradedι) splits the inclusion of the direct sum, which makes it a graded
algebra (SymmetricAlgebra.gradedAlgebra). The degree-zero piece is R
(SymmetricAlgebra.gradingZeroEquiv).
A ring map \varphi \colon R \to S and a \varphi-semilinear map f \colon M \to N induce the
graded ring map \operatorname{Sym}_R M \to \operatorname{Sym}_S N, \iota m \mapsto \iota f(m)
(SymmetricAlgebra.gradedMap), the lift of m \mapsto \iota f(m) for the R-algebra
structure of \operatorname{Sym}_S N along \varphi (SymmetricAlgebra.algebraOfRingHom,
SymmetricAlgebra.ιₛₗ).
Lean code for Definition2.3.1.1●7 definitions
Associated Lean declarations
-
SymmetricAlgebra.grading[complete]
-
SymmetricAlgebra.gradedι[complete]
-
SymmetricAlgebra.gradedAlgebra[complete]
-
SymmetricAlgebra.gradingZeroEquiv[complete]
-
SymmetricAlgebra.algebraOfRingHom[complete]
-
SymmetricAlgebra.ιₛₗ[complete]
-
SymmetricAlgebra.gradedMap[complete]
-
SymmetricAlgebra.grading[complete] -
SymmetricAlgebra.gradedι[complete] -
SymmetricAlgebra.gradedAlgebra[complete] -
SymmetricAlgebra.gradingZeroEquiv[complete] -
SymmetricAlgebra.algebraOfRingHom[complete] -
SymmetricAlgebra.ιₛₗ[complete] -
SymmetricAlgebra.gradedMap[complete]
-
defdefined in Hironaka/Algebra/SymmetricAlgebra/Defs.leancomplete
def SymmetricAlgebra.grading (R M : Type u) [CommRing R] [AddCommGroup M] [Module R M] (n : ℕ) : Submodule R (SymmetricAlgebra R M) := (SymmetricAlgebra.ι R M).range ^ n
def SymmetricAlgebra.grading (R M : Type u) [CommRing R] [AddCommGroup M] [Module R M] (n : ℕ) : Submodule R (SymmetricAlgebra R M) := (SymmetricAlgebra.ι R M).range ^ n
The graded pieces of the symmetric algebra:
Symⁿ M = ι(M)ⁿ, then-th power of theR-submodule spanned by the image ofM. -
defdefined in Hironaka/Algebra/SymmetricAlgebra/Defs.leancomplete
def SymmetricAlgebra.gradedι (R M : Type u) [CommRing R] [AddCommGroup M] [Module R M] : M →ₗ[R] DirectSum ℕ fun i => ↥(SymmetricAlgebra.grading R M i) := DirectSum.lof R ℕ (fun i => ↥(SymmetricAlgebra.grading R M i)) 1 ∘ₗ LinearMap.codRestrict (SymmetricAlgebra.grading R M 1) (SymmetricAlgebra.ι R M) ⋯
def SymmetricAlgebra.gradedι (R M : Type u) [CommRing R] [AddCommGroup M] [Module R M] : M →ₗ[R] DirectSum ℕ fun i => ↥(SymmetricAlgebra.grading R M i) := DirectSum.lof R ℕ (fun i => ↥(SymmetricAlgebra.grading R M i)) 1 ∘ₗ LinearMap.codRestrict (SymmetricAlgebra.grading R M 1) (SymmetricAlgebra.ι R M) ⋯
The inclusion
M → ⨁ₙ Symⁿ Min degree one, the auxiliary map ofSymmetricAlgebra.gradedAlgebra. -
defdefined in Hironaka/Algebra/SymmetricAlgebra/Defs.leancomplete
def SymmetricAlgebra.gradedAlgebra (R M : Type u) [CommRing R] [AddCommGroup M] [Module R M] : GradedAlgebra (SymmetricAlgebra.grading R M)
def SymmetricAlgebra.gradedAlgebra (R M : Type u) [CommRing R] [AddCommGroup M] [Module R M] : GradedAlgebra (SymmetricAlgebra.grading R M)
The symmetric algebra is graded by the powers of
ι(M). -
defdefined in Hironaka/Algebra/SymmetricAlgebra/Defs.leancomplete
def SymmetricAlgebra.gradingZeroEquiv (R M : Type u) [CommRing R] [AddCommGroup M] [Module R M] : R ≃+* ↥(SymmetricAlgebra.grading R M 0) := RingEquiv.ofBijective (algebraMap R ↥(SymmetricAlgebra.grading R M 0)) ⋯
def SymmetricAlgebra.gradingZeroEquiv (R M : Type u) [CommRing R] [AddCommGroup M] [Module R M] : R ≃+* ↥(SymmetricAlgebra.grading R M 0) := RingEquiv.ofBijective (algebraMap R ↥(SymmetricAlgebra.grading R M 0)) ⋯
The degree-zero piece of the symmetric algebra is
R:R ≃+* Sym⁰ M, the algebra map. -
abbrevdefined in Hironaka/Algebra/SymmetricAlgebra/Defs.leancomplete
abbrev SymmetricAlgebra.algebraOfRingHom {R : Type u} [CommRing R] {S N : Type u} [CommRing S] [AddCommGroup N] [Module S N] (φ : R →+* S) : Algebra R (SymmetricAlgebra S N) := ((algebraMap S (SymmetricAlgebra S N)).comp φ).toAlgebra
abbrev SymmetricAlgebra.algebraOfRingHom {R : Type u} [CommRing R] {S N : Type u} [CommRing S] [AddCommGroup N] [Module S N] (φ : R →+* S) : Algebra R (SymmetricAlgebra S N) := ((algebraMap S (SymmetricAlgebra S N)).comp φ).toAlgebra
The
R-algebra structure ofSym_S Nalongφ : R → S, under which aφ-semilinear mapM → Nfollowed byιisR-linear; the auxiliary structure ofSymmetricAlgebra.gradedMap. -
defdefined in Hironaka/Algebra/SymmetricAlgebra/Defs.leancomplete
The
R-linear mapM → Sym_S N,m ↦ ι (f m), for the algebra structureSymmetricAlgebra.algebraOfRingHom φ. -
defdefined in Hironaka/Algebra/SymmetricAlgebra/Defs.leancomplete
def SymmetricAlgebra.gradedMap {R M : Type u} [CommRing R] [AddCommGroup M] [Module R M] {S N : Type u} [CommRing S] [AddCommGroup N] [Module S N] (φ : R →+* S) (f : M →ₛₗ[φ] N) : SymmetricAlgebra.grading R M →+*ᵍ SymmetricAlgebra.grading S N := let __RingHom := (SymmetricAlgebra.lift (SymmetricAlgebra.ιₛₗ φ f)).toRingHom; { toRingHom := __RingHom, map_mem := ⋯ }
def SymmetricAlgebra.gradedMap {R M : Type u} [CommRing R] [AddCommGroup M] [Module R M] {S N : Type u} [CommRing S] [AddCommGroup N] [Module S N] (φ : R →+* S) (f : M →ₛₗ[φ] N) : SymmetricAlgebra.grading R M →+*ᵍ SymmetricAlgebra.grading S N := let __RingHom := (SymmetricAlgebra.lift (SymmetricAlgebra.ιₛₗ φ f)).toRingHom; { toRingHom := __RingHom, map_mem := ⋯ }
The graded map of symmetric algebras induced by a ring map
φ : R → Sand aφ-semilinear mapf : M → N: the ring mapSym_R M → Sym_S Nwithι m ↦ ι (f m)andr ↦ φ r, which sendsSymⁿ MintoSymⁿ N.
-
affineProjectiveBundle[complete] -
affineProjectiveBundle.π[complete] -
affineProjectiveBundle.map[complete] -
affineProjectiveBundle.mapHom[complete]
The projective bundle of an R-module M is
\mathbf{P}(M) = \operatorname{Proj}(\operatorname{Sym}_R M) (affineProjectiveBundle R M),
with the structure morphism to \operatorname{Spec} R induced by R \cong \operatorname{Sym}^0 M
(affineProjectiveBundle.π). For M = R^n it is projective space
\mathbb{P}^{n-1}_R. A ring map \varphi \colon R \to S and a \varphi-semilinear map
f \colon M \to N whose image spans N induce \mathbf{P}(N) \to \mathbf{P}(M) over
\operatorname{Spec} \varphi (affineProjectiveBundle.map, and
affineProjectiveBundle.mapHom for a morphism of CommRingCat): Mathlib's
Proj.map of the graded map, whose hypothesis — the irrelevant ideal of
\operatorname{Sym}_S N, generated by \iota(N), lies in the ideal generated by the image of that
of \operatorname{Sym}_R M — is the spanning.
When f exhibits N as S \otimes_R M, the square of \mathbf{P}(N) \to \mathbf{P}(M) over
\operatorname{Spec} S \to \operatorname{Spec} R is cartesian [TSPA, Tag 01N2]
(affineProjectiveBundle.isPullback_map). On the chart D_+(\iota x) of \mathbf{P}(M) this
is a pushout of rings: the degree-zero part (\operatorname{Sym} M)_{(\iota x)} of the
localization at \iota x is the free commutative R-algebra on M with x = 1, its elements
being the fractions a / (\iota x)^n, a \in \operatorname{Sym}^n M
(SymmetricAlgebra.awayLift, SymmetricAlgebra.isPushout_away).
Lean code for Definition2.3.1.2●4 definitions
Associated Lean declarations
-
affineProjectiveBundle[complete]
-
affineProjectiveBundle.π[complete]
-
affineProjectiveBundle.map[complete]
-
affineProjectiveBundle.mapHom[complete]
-
affineProjectiveBundle[complete] -
affineProjectiveBundle.π[complete] -
affineProjectiveBundle.map[complete] -
affineProjectiveBundle.mapHom[complete]
-
abbrevdefined in Hironaka/Scheme/ProjectiveBundle/Affine/Defs.leancomplete
abbrev affineProjectiveBundle (R M : Type u) [CommRing R] [AddCommGroup M] [Module R M] : Scheme := Proj (SymmetricAlgebra.grading R M)
abbrev affineProjectiveBundle (R M : Type u) [CommRing R] [AddCommGroup M] [Module R M] : Scheme := Proj (SymmetricAlgebra.grading R M)
The projective bundle of a module [TSPA, Tag 01OB]:
P(M) = Proj (Sym_R M). Anabbrev, so that Mathlib's instances onProjapply to it. -
defdefined in Hironaka/Scheme/ProjectiveBundle/Affine/Defs.leancomplete
def affineProjectiveBundle.π (R M : Type u) [CommRing R] [AddCommGroup M] [Module R M] : affineProjectiveBundle R M ⟶ Spec ↧R := Proj.toSpecZero (SymmetricAlgebra.grading R M) ≫ Spec.map (SymmetricAlgebra.gradingZeroEquiv R M).toCommRingCatIso.hom
def affineProjectiveBundle.π (R M : Type u) [CommRing R] [AddCommGroup M] [Module R M] : affineProjectiveBundle R M ⟶ Spec ↧R := Proj.toSpecZero (SymmetricAlgebra.grading R M) ≫ Spec.map (SymmetricAlgebra.gradingZeroEquiv R M).toCommRingCatIso.hom
The structure morphism
P(M) ⟶ Spec R:Proj.toSpecZerofollowed bySpecof the identificationR ≅ Sym⁰ M. -
defdefined in Hironaka/Scheme/ProjectiveBundle/Affine/Defs.leancomplete
def affineProjectiveBundle.map {R M : Type u} [CommRing R] [AddCommGroup M] [Module R M] {S N : Type u} [CommRing S] [AddCommGroup N] [Module S N] (φ : R →+* S) (f : M →ₛₗ[φ] N) (hf : Submodule.span S (Set.range ⇑f) = ⊤) : affineProjectiveBundle S N ⟶ affineProjectiveBundle R M := Proj.map (SymmetricAlgebra.gradedMap φ f) ⋯
def affineProjectiveBundle.map {R M : Type u} [CommRing R] [AddCommGroup M] [Module R M] {S N : Type u} [CommRing S] [AddCommGroup N] [Module S N] (φ : R →+* S) (f : M →ₛₗ[φ] N) (hf : Submodule.span S (Set.range ⇑f) = ⊤) : affineProjectiveBundle S N ⟶ affineProjectiveBundle R M := Proj.map (SymmetricAlgebra.gradedMap φ f) ⋯
The morphism of projective bundles
P(N) ⟶ P(M)induced by a ring mapφ : R → Sand aφ-semilinear mapf : M → Nwhose image spansN:Proj.mapof the graded mapSym_R M → Sym_S N. -
defdefined in Hironaka/Scheme/ProjectiveBundle/Affine/Defs.leancomplete
def affineProjectiveBundle.mapHom {R S : CommRingCat} {M N : Type u} [AddCommGroup M] [Module (↑R) M] [AddCommGroup N] [Module (↑S) N] (φ : R ⟶ S) (f : M →ₛₗ[CommRingCat.Hom.hom φ] N) (hf : Submodule.span (↑S) (Set.range ⇑f) = ⊤) : affineProjectiveBundle (↑S) N ⟶ affineProjectiveBundle (↑R) M := affineProjectiveBundle.map (CommRingCat.Hom.hom φ) f hf
def affineProjectiveBundle.mapHom {R S : CommRingCat} {M N : Type u} [AddCommGroup M] [Module (↑R) M] [AddCommGroup N] [Module (↑S) N] (φ : R ⟶ S) (f : M →ₛₗ[CommRingCat.Hom.hom φ] N) (hf : Submodule.span (↑S) (Set.range ⇑f) = ⊤) : affineProjectiveBundle (↑S) N ⟶ affineProjectiveBundle (↑R) M := affineProjectiveBundle.map (CommRingCat.Hom.hom φ) f hf
affineProjectiveBundle.mapfor a morphismφ : R ⟶ SofCommRingCat. Applied to a restriction mapΓ(X, V) ⟶ Γ(X, U)of a scheme, the form with a ring homomorphism makes Lean unify the ring structures of↑Γ(X, U)obtained by two routes, which unfolds the presheaf and times out; passing the rings as objects ofCommRingCatavoids it (as foraffineBlowUp.mapHom).
2.3.2. The projective bundle of a quasi-coherent sheaf
A sheaf of modules on a scheme X is Mathlib's X.Modules, with Mathlib's notions of a
quasi-coherent sheaf (SheafOfModules.IsQuasicoherent) and of a sheaf of finite type
(SheafOfModules.IsFiniteType). For a quasi-coherent \mathcal{E} the sections over a basic open
D(r) of an affine open V are the localization of those over V at r [TSPA, Tags 01I9 and 01IA], and
for affine opens U \subseteq V the sections over U are the base change
\Gamma(X, U) \otimes_{\Gamma(X, V)} \Gamma(\mathcal{E}, V) [TSPA, Tags 01I9 and 01IA]
(Scheme.Modules.isBaseChange_resₗ): Mathlib's identification of a quasi-coherent sheaf on an
affine scheme \operatorname{Spec} R with the sheaf \widetilde{M} of its global sections, read
on X. So the projective bundles of the modules of sections glue.
-
Modules.restrictionMap[complete] -
projectiveBundleFunctor[complete] -
projectiveBundleNatTrans[complete] -
projectiveBundleGluingData[complete] -
Modules.projectiveBundle[complete] -
Modules.projectiveBundleπ[complete]
The projective bundle of a quasi-coherent sheaf of modules \mathcal{E} on X is
\mathbf{P}(\mathcal{E}) = \operatorname{Proj}_X (\operatorname{Sym} \mathcal{E})
(E.projectiveBundle), with projection E.projectiveBundleπ to X [TSPA, Tag 01OB]. It is glued
by the relative gluing lemma [TSPA, Tag 01LH] from the functor
projectiveBundleFunctor on the affine opens of X,
U \mapsto \mathbf{P}(\Gamma(\mathcal{E}, U)), whose transition maps are induced by the
restrictions \Gamma(\mathcal{E}, V) \to \Gamma(\mathcal{E}, U), semilinear along
\Gamma(X, V) \to \Gamma(X, U) (Scheme.Modules.restrictionMap), and from the structure
morphisms \mathbf{P}(\Gamma(\mathcal{E}, U)) \to \operatorname{Spec} \Gamma(X, U) \cong U
(projectiveBundleNatTrans), whose naturality squares are pullbacks by quasi-coherence
(projectiveBundleNatTrans_equifibered; projectiveBundleGluingData).
Lean code for Definition2.3.2.1●6 definitions
Associated Lean declarations
-
Modules.restrictionMap[complete]
-
projectiveBundleFunctor[complete]
-
projectiveBundleNatTrans[complete]
-
projectiveBundleGluingData[complete]
-
Modules.projectiveBundle[complete]
-
Modules.projectiveBundleπ[complete]
-
Modules.restrictionMap[complete] -
projectiveBundleFunctor[complete] -
projectiveBundleNatTrans[complete] -
projectiveBundleGluingData[complete] -
Modules.projectiveBundle[complete] -
Modules.projectiveBundleπ[complete]
-
defdefined in Hironaka/Scheme/Modules/Defs.leancomplete
The restriction map
Γ(F, V) → Γ(F, U)of a sheaf of modules, for opensU ≤ V, as a map semilinear along the restriction of functionsΓ(X, V) → Γ(X, U). -
defdefined in Hironaka/Scheme/ProjectiveBundle/Functor/Defs.leancomplete
def projectiveBundleFunctor {X : Scheme} (F : X.Modules) [SheafOfModules.IsQuasicoherent F] : ↑X.affineOpens ⥤ Scheme := { obj := fun U => affineProjectiveBundle ↑Γ(X, ↑U) ↑Γ(F, ↑U), map := fun {U V} h => affineProjectiveBundle.mapHom (X.presheaf.map (homOfLE ⋯).op) (F.restrictionMap ⋯) ⋯, map_id := ⋯, map_comp := ⋯ }
def projectiveBundleFunctor {X : Scheme} (F : X.Modules) [SheafOfModules.IsQuasicoherent F] : ↑X.affineOpens ⥤ Scheme := { obj := fun U => affineProjectiveBundle ↑Γ(X, ↑U) ↑Γ(F, ↑U), map := fun {U V} h => affineProjectiveBundle.mapHom (X.presheaf.map (homOfLE ⋯).op) (F.restrictionMap ⋯) ⋯, map_id := ⋯, map_comp := ⋯ }
The functor of projective bundles on the affine opens of
X,U ↦ P(Γ(F, U)) = Proj (Sym_{Γ(X, U)} Γ(F, U)), with transition map forU ≤ Vthe morphism induced by the restrictionΓ(F, V) → Γ(F, U)[TSPA, Tags 01OB and 01LH]. -
defdefined in Hironaka/Scheme/ProjectiveBundle/Functor/Defs.leancomplete
def projectiveBundleNatTrans {X : Scheme} (F : X.Modules) [SheafOfModules.IsQuasicoherent F] : projectiveBundleFunctor F ⟶ Cover.functorOfLocallyDirected X.directedAffineCover := { app := fun U => affineProjectiveBundle.π ↑Γ(X, ↑U) ↑Γ(F, ↑U) ≫ ⋯.isoSpec.inv, naturality := ⋯ }
def projectiveBundleNatTrans {X : Scheme} (F : X.Modules) [SheafOfModules.IsQuasicoherent F] : projectiveBundleFunctor F ⟶ Cover.functorOfLocallyDirected X.directedAffineCover := { app := fun U => affineProjectiveBundle.π ↑Γ(X, ↑U) ↑Γ(F, ↑U) ≫ ⋯.isoSpec.inv, naturality := ⋯ }
The structure morphisms
P(Γ(F, U)) ⟶ Spec Γ(X, U) ≅ U, as a natural transformation to the directed affine cover's diagram [TSPA, Tag 01LH]. -
defdefined in Hironaka/Scheme/ProjectiveBundle/Defs.leancomplete
def projectiveBundleGluingData {X : Scheme} (F : X.Modules) [SheafOfModules.IsQuasicoherent F] : Cover.RelativeGluingData X.directedAffineCover := { functor := projectiveBundleFunctor F, natTrans := projectiveBundleNatTrans F, equifibered := ⋯ }
def projectiveBundleGluingData {X : Scheme} (F : X.Modules) [SheafOfModules.IsQuasicoherent F] : Cover.RelativeGluingData X.directedAffineCover := { functor := projectiveBundleFunctor F, natTrans := projectiveBundleNatTrans F, equifibered := ⋯ }
The relative gluing datum of the projective bundles over the directed affine cover [TSPA, Tag 01LH].
-
defdefined in Hironaka/Scheme/ProjectiveBundle/Defs.leancomplete
def Modules.projectiveBundle {X : Scheme} (F : X.Modules) [SheafOfModules.IsQuasicoherent F] : Scheme := (projectiveBundleGluingData F).glued
def Modules.projectiveBundle {X : Scheme} (F : X.Modules) [SheafOfModules.IsQuasicoherent F] : Scheme := (projectiveBundleGluingData F).glued
The projective bundle
P(F) = Proj_X (Sym F)of a quasi-coherent sheaf of modulesF[TSPA, Tag 01OB]: glued from the projective bundlesProj (Sym_{Γ(X, U)} Γ(F, U))of the modules of sections over the affine opensUofX. -
defdefined in Hironaka/Scheme/ProjectiveBundle/Defs.leancomplete
def Modules.projectiveBundleπ {X : Scheme} (F : X.Modules) [SheafOfModules.IsQuasicoherent F] : F.projectiveBundle ⟶ X := (projectiveBundleGluingData F).toBase
def Modules.projectiveBundleπ {X : Scheme} (F : X.Modules) [SheafOfModules.IsQuasicoherent F] : F.projectiveBundle ⟶ X := (projectiveBundleGluingData F).toBase
The structure morphism
P(F) ⟶ Xof the projective bundle.
2.3.3. Projective morphisms
A morphism f \colon X \to Y is projective (IsProjective f) if X is isomorphic over Y
to a closed subscheme of the projective bundle \mathbf{P}(\mathcal{E}) of a quasi-coherent
\mathcal{O}_Y-module \mathcal{E} of finite type: f is a closed immersion
X \to \mathbf{P}(\mathcal{E}) followed by the projection [TSPA, Tag 01W8]. This is
Grothendieck's definition, and the reading of Kollár's "projective morphism". Over a base with an
ample invertible sheaf, a quasi-projective variety over a field for instance, it agrees with being a
closed subscheme of some \mathbb{P}^n_Y [TSPA, Tag 087S]; in general that condition is stronger,
while asking the condition only over the members of an open cover of Y, locally projective, is
weaker, and Kollár's Example 28.1 is a proper, locally projective morphism that is not projective
[Kol07, Example 28.1].
A projective morphism is proper (IsProjective.isProper): \mathbf{P}(\mathcal{E}) \to Y is
proper for \mathcal{E} of finite type (as in the proof of [TSPA, Tag 01WC]), being, over an
affine open with finitely generated sections, \operatorname{Proj} of a graded algebra generated
by finitely many elements of degree one. A blow-up of a locally Noetherian scheme along an ideal sheaf \mathcal{I} is
projective (Scheme.IdealSheafData.isProjective_blowUpπ, [TSPA, Tag 02NS]): the surjection
\operatorname{Sym} \mathcal{I} \to \bigoplus_n \mathcal{I}^n, the identity of \mathcal{I} in
degree one, makes it a closed subscheme of \mathbf{P}(\mathcal{I}), the ideal sheaf being a
quasi-coherent sheaf of modules of finite type. As a finite succession of blow-ups of a Noetherian
scheme is one blow-up [TSPA, Tag 080B], its composite is projective
(Scheme.BlowUpSequence.isProjective_composite).
Lean code for Definition2.3.3.1●1 definition
Associated Lean declarations
-
IsProjective[complete]
-
IsProjective[complete]
-
classdefined in Hironaka/Scheme/ProjectiveBundle/Defs.leancomplete
A projective morphism [TSPA, Tag 01W8]:
f : X ⟶ Yis projective whenXis isomorphic overYto a closed subscheme of the projective bundleP(E)of a quasi-coherent𝒪_Y-moduleEof finite type, that is, whenffactors as a closed immersionX ⟶ P(E)followed by the structure morphismP(E) ⟶ Y. A projective morphism is proper (AlgebraicGeometry.IsProjective.isProper).Methods
exists_isClosedImmersion : ∃ E, ∃ (x : SheafOfModules.IsQuasicoherent E) (_ : SheafOfModules.IsFiniteType E), ∃ i, IsClosedImmersion i ∧ i ≫ E.projectiveBundleπ = f