Documentation

DerivedAlgGeo.AlgebraicGeometry.ProjectiveSpectrum.Modules.GlobalGeneration

Serre's theorem: a coherent sheaf on Proj is generated by global sections after a twist #

Hartshorne II.5.17 / EGA II 2.7.9, in the global-generation form. For π’œ generated over π’œ 0 by finitely many elements of degree one and F coherent on Proj π’œ, there is an N such that F(N) = F βŠ— O(N) is a quotient of a finite free sheaf: free I β†  F(N), equivalently F(N) has finitely many generating sections.

This closes #586, and it is the first place in the tree where Serre's theorem itself is proved, as opposed to the section-extension lemma (Glue.lean, Hartshorne II.5.14(a)) that exists_globalSection_twistBy is. Nothing here assumes global generation, a resolution property, or an instance supplying the surjection: the inputs are coherence of F, finiteness of the degree-one generating set, and nothing else.

The argument #

Three layers, each already in the tree, joined here:

  1. Chart generators (ChartGeneration.lean). On each chart Dβ‚Š(gα΅’), coherence gives finitely many sections sα΅’,ₐ of F over the chart that generate F locally there.
  2. One twist for all of them (GlueUniform.lean). Each sα΅’,ₐ, multiplied by gα΅’α΄Ί, extends to a global section Οƒα΅’,ₐ of F(N), with a single N serving every chart and every generator. This is where the uniform exponent, not a maximum of per-section exponents, is essential -- see that file for why raising an exponent after the fact is unavailable.
  3. The O(N) factor (TwistGenerated.lean). On Dβ‚Š(gα΅’), every section of O(N) is locally a multiple of gα΅’α΄Ί / 1, so every pure tensor t βŠ— w is locally (r β€’ t) βŠ— (gα΅’α΄Ί / 1), hence a combination of the twistBy gα΅’α΄Ί of the chart generators, hence of the Οƒα΅’,ₐ.

A section of the sheafified tensor product is locally a finite sum of pure tensors (exists_eq_sum_tmulSection), so IsLocalCombination closes the sum, and its epimorphism criterion closes the theorem.

F(N) here, βŠ• O(-N) β†  F in TwistInverse.lean #

The statement proved here is the one Hartshorne II.5.17 states first. The passage to βŠ• O(-N) β†  F is one tensor with O(-N) and the untwisting (F βŠ— O(N)) βŠ— O(-N) β‰… F, which TwistInverse.lean supplies from the tensor inverse of O(N) (the L = O(N) case of #806); exists_epi_coproduct_twistingSheaf there is the coproduct form.

The exponent is 1 * N #

exists_globalSection_twistBy_uniform twists by f ^ N at degree e * N for generators of degree e; here e = 1, and 1 * N is not definitionally N. The theorem is therefore stated with an existential N and instantiated at 1 * Nβ‚€, and the two spellings gα΅’ ^ Nβ‚€ and gα΅’ ^ (1 * Nβ‚€) of the twisting element are reconciled by twistBy_congr rather than by rewriting inside a dependent type.

theorem AlgebraicGeometry.Proj.exists_res_tmulSection_eq_sum {A ΟƒA : Type u} [CommRing A] [SetLike ΟƒA A] [AddSubgroupClass ΟƒA A] (π’œ : β„• β†’ ΟƒA) [GradedRing π’œ] (F : (Proj π’œ).Modules) {g : A} (hg : g ∈ π’œ 1) {ΞΊ : Type u} [Fintype ΞΊ] (s : ΞΊ β†’ ↑(F.presheaf.obj (Opposite.op (basicOpen π’œ g)))) (hs : βˆ€ (U : (Proj π’œ).Opens) (hUW : U ≀ basicOpen π’œ g) (u : ↑(F.presheaf.obj (Opposite.op U))), βˆ€ x ∈ U, βˆƒ (V : (Proj π’œ).Opens) (hVU : V ≀ U), x ∈ V ∧ βˆƒ (c : ΞΊ β†’ ↑((Proj π’œ).presheaf.obj (Opposite.op V))), (CategoryTheory.ConcreteCategory.hom (F.presheaf.map (CategoryTheory.homOfLE hVU).op)) u = βˆ‘ b : ΞΊ, c b β€’ (CategoryTheory.ConcreteCategory.hom (F.presheaf.map (CategoryTheory.homOfLE β‹―).op)) (s b)) (N : β„•) {V : (Proj π’œ).Opens} (t : ↑(F.presheaf.obj (Opposite.op V))) (w : ↑((twistingSheaf π’œ ↑N).presheaf.obj (Opposite.op V))) (x : β†₯(Proj π’œ)) (hxV : x ∈ V) (hxg : x ∈ ProjectiveSpectrum.basicOpen π’œ g) :
βˆƒ (W : (Proj π’œ).Opens) (hWV : W ≀ V) (hWg : W ≀ basicOpen π’œ g), x ∈ W ∧ βˆƒ (c : ΞΊ β†’ ↑((Proj π’œ).presheaf.obj (Opposite.op W))), (CategoryTheory.ConcreteCategory.hom ((F.tensorObj (twistingSheaf π’œ ↑N)).presheaf.map (CategoryTheory.homOfLE hWV).op)) (F.tmulSection (twistingSheaf π’œ ↑N) (Opposite.op V) t w) = βˆ‘ b : ΞΊ, c b β€’ (CategoryTheory.ConcreteCategory.hom ((F.tensorObj (twistingSheaf π’œ ↑N)).presheaf.map (CategoryTheory.homOfLE hWg).op)) ((CategoryTheory.ConcreteCategory.hom (Scheme.Modules.Hom.app (twistBy π’œ N β‹― F) (basicOpen π’œ g))) (s b))

A pure tensor of F βŠ— O(N) is locally a combination of the twisted chart generators.

Near a point of Dβ‚Š(g), the O(N) factor is a multiple of gα΄Ί / 1 (exists_smul_sectionOfMem_eq_res), so the pure tensor is (r β€’ t) βŠ— (gα΄Ί / 1); the chart generators write r β€’ t as a combination (hs); and sₐ βŠ— (gα΄Ί / 1) is twistBy gα΄Ί applied to sₐ (twistBy_app). The scalars are carried onto the first factor by smul_tmulSection_left.

The family is given with its local-generation property as a hypothesis, in the exact shape exists_finite_generators_of_isCoherent produces it, so that the choice of generators is made once in the main theorem and not again here.

theorem AlgebraicGeometry.Proj.exists_epi_free_tensorTwist_ge {A ΟƒA : Type u} [CommRing A] [SetLike ΟƒA A] [AddSubgroupClass ΟƒA A] (π’œ : β„• β†’ ΟƒA) [GradedRing π’œ] (F : (Proj π’œ).Modules) (hF : Scheme.Modules.IsCoherent (Proj π’œ) F) {ΞΉ : Type u} [Finite ΞΉ] {g : ΞΉ β†’ A} (hg : βˆ€ (i : ΞΉ), g i ∈ π’œ 1) (hcov : Algebra.adjoin (β†₯(π’œ 0)) (Set.range g) = ⊀) (Nβ‚€ : β„•) :
βˆƒ (N : β„•) (_ : Nβ‚€ ≀ N) (I : Type u) (_ : Finite I) (p : SheafOfModules.free I ⟢ have this := F.tensorObj (twistingSheaf π’œ ↑N); this), CategoryTheory.Epi p

Serre's theorem, in the global-generation form: F(N) is a quotient of a finite free sheaf for N large.

For π’œ generated over π’œ 0 by finitely many degree-one elements g i and F coherent on Proj π’œ, there are N and a finite I with an epimorphism free I β†  F βŠ— O(N).

Hartshorne II.5.17 / EGA II 2.7.9. The hypotheses are exactly the ones the chart lemmas take: coherence, and the degree-one generating family with its finiteness. No global-generation or resolution hypothesis enters anywhere, and no instance supplies the surjection. The index I is the disjoint union over the charts of the chart generators, and N is the uniform exponent of exists_globalSection_twistBy_uniform_ge, pushed above any prescribed Nβ‚€: the dΓ©vissage on Pⁿ wants N β‰₯ 1, so that H⁰(O(-N)) vanishes.

theorem AlgebraicGeometry.Proj.exists_epi_free_tensorTwist {A ΟƒA : Type u} [CommRing A] [SetLike ΟƒA A] [AddSubgroupClass ΟƒA A] (π’œ : β„• β†’ ΟƒA) [GradedRing π’œ] (F : (Proj π’œ).Modules) (hF : Scheme.Modules.IsCoherent (Proj π’œ) F) {ΞΉ : Type u} [Finite ΞΉ] {g : ΞΉ β†’ A} (hg : βˆ€ (i : ΞΉ), g i ∈ π’œ 1) (hcov : Algebra.adjoin (β†₯(π’œ 0)) (Set.range g) = ⊀) :
βˆƒ (N : β„•) (I : Type u) (_ : Finite I) (p : SheafOfModules.free I ⟢ have this := F.tensorObj (twistingSheaf π’œ ↑N); this), CategoryTheory.Epi p

Serre's theorem, in the global-generation form, with the exponent unconstrained.

theorem AlgebraicGeometry.Proj.exists_generatingSections_tensorTwist {A ΟƒA : Type u} [CommRing A] [SetLike ΟƒA A] [AddSubgroupClass ΟƒA A] (π’œ : β„• β†’ ΟƒA) [GradedRing π’œ] (F : (Proj π’œ).Modules) (hF : Scheme.Modules.IsCoherent (Proj π’œ) F) {ΞΉ : Type u} [Finite ΞΉ] {g : ΞΉ β†’ A} (hg : βˆ€ (i : ΞΉ), g i ∈ π’œ 1) (hcov : Algebra.adjoin (β†₯(π’œ 0)) (Set.range g) = ⊀) :
βˆƒ (N : β„•) (Οƒ : (have this := F.tensorObj (twistingSheaf π’œ ↑N); this).GeneratingSections), Οƒ.IsFiniteType

Serre's theorem, phrased through GeneratingSections: F(N) has finitely many generating sections for N large.