Documentation

DerivedAlgGeo.AlgebraicGeometry.ProjectiveSpectrum.Modules.TwistGenerated

The twisting sheaf is generated by gᴺ on the chart D₊(g) #

exists_smul_sectionOfMem_eq says that near every point of D₊(g), every section of O(N) is a structure-sheaf multiple of the single section gᴺ / 1. This is the chart-local half of Serre's global generation: #586 needs the twisted generators to generate F(N) on each chart, and the O(N) factor of that is exactly this statement.

Why this is not a triviality about invertible sheaves #

O(N) is invertible (twistingSheaf_isInvertible) and trivial on a degree-one chart (twistingSheafOverUnitIso), so it is tempting to read the statement off those. That does not work, and the reason is #585's: those isomorphisms are property witnesses, not computations. They say a trivialization exists; they do not say that this section, gᴺ / 1, is one. A generator has to be exhibited, and the argument has to be made on fractions.

The argument #

isLocallyFraction hands over, near the point, a single fraction: w = r / s on some V', with s ∈ 𝒜 i invertible there and r in the shifted piece — which, because the shift N is a natural number, is just 𝒜 (i + N) (mem_intShift_ofNat_iff).

Shrink to V' ⊓ D₊(g) and take the scalar

r / (s · gᴺ),

a degree-zero fraction because s · gᴺ ∈ 𝒜 (i + N) matches r's degree, and a legitimate section because both s and g are invertible on that open. Multiplying gᴺ / 1 by it gives r · gᴺ / (s · gᴺ · 1), which is r / s after cancelling gᴺ — one LocalizedModule.mk_eq with witness 1, the same last step as frac_smul_sectionOfMem.

Shrinking is not optional #

The neighbourhood is cut down twice, and both cuts are forced. isLocallyFraction only offers a fraction on some neighbourhood, and the denominator s · gᴺ is invertible only where g is — which is why the conclusion carries W and a proof W ≤ V rather than asserting anything on V itself. On the chart this costs nothing: the caller is choosing an open around a point it was already handed.

Scope #

The O(N) factor alone. Nothing here mentions F, twistBy, or surjectivity; the passage from this to F(N) is the tensor step and is not in this file.

theorem AlgebraicGeometry.Proj.exists_smul_sectionOfMem_eq {A σA : Type u} [CommRing A] [SetLike σA A] [AddSubgroupClass σA A] (𝒜 : ℕ → σA) [GradedRing 𝒜] {g : A} (hg : g ∈ 𝒜 1) (N : ℕ) {V : TopologicalSpace.Opens ↑(ProjectiveSpectrum.top 𝒜)} (w : (associatedSheafInType 𝒜 (GradedModule.intShift 𝒜 ↑N)).obj.obj (Opposite.op V)) (x : ProjectiveSpectrum 𝒜) (hxV : x ∈ V) (hxg : x ∈ ProjectiveSpectrum.basicOpen 𝒜 g) :
∃ (W : TopologicalSpace.Opens ↑(ProjectiveSpectrum.top 𝒜)) (hWV : W ≤ V), x ∈ W ∧ ∃ (r : ↑((ProjectiveSpectrum.Proj.structureSheaf 𝒜).obj.obj (Opposite.op W))), ∀ (y : ↥W), ↑(r • sectionOfMem 𝒜 𝒜 W N ⋯) y = ↑w ⟨↑y, ⋯⟩

gᴺ / 1 generates O(N) near every point of D₊(g).

For g of degree one and w a section of O(N) over V, every point of V ⊓ D₊(g) has a neighbourhood on which w is a structure-sheaf multiple of sectionOfMem 𝒜 𝒜 _ N gᴺ.

The conclusion compares the two sections pointwise rather than through a restriction map: the module action on associatedSheafInType is pointwise, so this is the form both the proof and the callers want, and it avoids naming the restriction of w at all.

theorem AlgebraicGeometry.Proj.exists_smul_sectionOfMem_eq_res {A σA : Type u} [CommRing A] [SetLike σA A] [AddSubgroupClass σA A] (𝒜 : ℕ → σA) [GradedRing 𝒜] {g : A} (hg : g ∈ 𝒜 1) (N : ℕ) {V : (Proj 𝒜).Opens} (w : ↑((twistingSheaf 𝒜 ↑N).presheaf.obj (Opposite.op V))) (x : ↥(Proj 𝒜)) (hxV : x ∈ V) (hxg : x ∈ ProjectiveSpectrum.basicOpen 𝒜 g) :
∃ (W : (Proj 𝒜).Opens) (hWV : W ≤ V), x ∈ W ∧ ∃ (r : ↑((Proj 𝒜).presheaf.obj (Opposite.op W))), (r • have this := sectionOfMem 𝒜 𝒜 W N ⋯; this) = (CategoryTheory.ConcreteCategory.hom ((twistingSheaf 𝒜 ↑N).presheaf.map (CategoryTheory.homOfLE hWV).op)) w

The same, as an equation of sections of O(N).

exists_smul_sectionOfMem_eq compares the two sides at every point of W; sections of the associated sheaf are determined by their values (section_ext), and restriction is pointwise, so this is the pointwise statement read as r • (gᴺ / 1) = w|_W. The section type is ascribed at Γ(O(N), W) so that the scalar action is the module-sheaf one a consumer sees.