Documentation

DerivedAlgGeo.AlgebraicGeometry.ProjectiveSpectrum.Modules.TwistAdd

The twists compose, on the sheaf side #

Shift.lean proves that the graded identity M(d)(e) = M(d + e) is false. intShift zero-extends, so with d = 10, e = -5 and n = 0 the double shift is {0} while the single shift is ๐“œ 5; eq_zero_of_mem_intShift_intShift_of_neg is a theorem written for no purpose other than to record that. Its note also says what to do about it:

This is a fact about the algebraic model, not about the sheaf. associatedSheaf only ever reads these pieces through homogeneous localizations, where the missing degrees are inverted back in, so the sheaf-level composition O(d)(e) โ‰… O(d + e) is not obstructed by this โ€” but it cannot be obtained by transporting an algebraic identity, and has to be proved on the sheaf side.

This file is that proof, and sheafTwistAddIso is the integer analogue of sheafNatTwistAddIso that TwistingSheaf.lean declined to assert for exactly this reason.

The shape of the argument #

The comparison is pointwise the identity. Fiber is DegreeZeroLocalization, which is a submodule of LocalizedModule S M, and that ambient does not mention the grading at all โ€” so the two twists are subobjects of one object and degreeZeroSubmodule_intShift_intShift says their carriers coincide. Nothing is transported; only the certificate changes.

What is left is the local-fraction condition, and the two directions are not symmetric:

exists_homogeneous_pos_not_mem supplies the ฯ„, and is where the geometry enters: a point of Proj is exactly a relevant prime, so it misses a homogeneous element of positive degree.

Scope #

The composition only. Relating it to the tensor product โ€” F โŠ— O(d) โ‰… F(d), and hence O(d) โŠ— O(e) โ‰… O(d + e) โ€” is a separate comparison and is not here.

theorem AlgebraicGeometry.Proj.exists_homogeneous_pos_not_mem {A ฯƒA : Type u} [CommRing A] [SetLike ฯƒA A] [AddSubgroupClass ฯƒA A] (๐’œ : โ„• โ†’ ฯƒA) [GradedRing ๐’œ] (x : ProjectiveSpectrum ๐’œ) :
โˆƒ (m : โ„•) (t : A), 0 < m โˆง t โˆˆ ๐’œ m โˆง t โˆ‰ x.asHomogeneousIdeal

Every point of Proj misses a homogeneous element of positive degree.

theorem AlgebraicGeometry.Proj.mem_primeCompl_of_not_mem {A ฯƒA : Type u} [CommRing A] [SetLike ฯƒA A] [AddSubgroupClass ฯƒA A] (๐’œ : โ„• โ†’ ฯƒA) [GradedRing ๐’œ] {x : ProjectiveSpectrum ๐’œ} {t : A} (ht : t โˆ‰ x.asHomogeneousIdeal) :

The point misses t, phrased for the localization's denominators.

theorem AlgebraicGeometry.Proj.degreeZeroSubmodule_intShift_intShift {A M ฯƒA ฯƒM : Type u} [CommRing A] [AddCommGroup M] [Module A M] [SetLike ฯƒA A] [AddSubgroupClass ฯƒA A] [SetLike ฯƒM M] [AddSubgroupClass ฯƒM M] (๐’œ : โ„• โ†’ ฯƒA) (๐“œ : โ„• โ†’ ฯƒM) [GradedRing ๐’œ] [SetLike.GradedSMul ๐’œ ๐“œ] (x : ProjectiveSpectrum ๐’œ) (d e : โ„ค) :

The two shifts have the same fiber at every point of Proj.

noncomputable def AlgebraicGeometry.Proj.fiberIntShiftAddEquiv {A M ฯƒA ฯƒM : Type u} [CommRing A] [AddCommGroup M] [Module A M] [SetLike ฯƒA A] [AddSubgroupClass ฯƒA A] [SetLike ฯƒM M] [AddSubgroupClass ฯƒM M] (๐’œ : โ„• โ†’ ฯƒA) (๐“œ : โ„• โ†’ ฯƒM) [GradedRing ๐’œ] [SetLike.GradedSMul ๐’œ ๐“œ] (x : ProjectiveSpectrum ๐’œ) (d e : โ„ค) :
โ†ฅ(Fiber ๐’œ (GradedModule.intShift (GradedModule.intShift ๐“œ d) e) x) โ‰ƒโ‚—[HomogeneousLocalization ๐’œ x.asHomogeneousIdeal.toIdeal.primeCompl] โ†ฅ(Fiber ๐’œ (GradedModule.intShift ๐“œ (d + e)) x)

The fiber comparison, as a linear equivalence. It is the identity on carriers.

Equations
  • One or more equations did not get rendered due to their size.
Instances For
    @[simp]
    theorem AlgebraicGeometry.Proj.fiberIntShiftAddEquiv_coe {A M ฯƒA ฯƒM : Type u} [CommRing A] [AddCommGroup M] [Module A M] [SetLike ฯƒA A] [AddSubgroupClass ฯƒA A] [SetLike ฯƒM M] [AddSubgroupClass ฯƒM M] (๐’œ : โ„• โ†’ ฯƒA) (๐“œ : โ„• โ†’ ฯƒM) [GradedRing ๐’œ] [SetLike.GradedSMul ๐’œ ๐“œ] (x : ProjectiveSpectrum ๐’œ) (d e : โ„ค) (z : โ†ฅ(Fiber ๐’œ (GradedModule.intShift (GradedModule.intShift ๐“œ d) e) x)) :
    โ†‘((fiberIntShiftAddEquiv ๐’œ ๐“œ x d e) z) = โ†‘z
    theorem AlgebraicGeometry.Proj.pred_intShift_intShift_of_pred {A M ฯƒA ฯƒM : Type u} [CommRing A] [AddCommGroup M] [Module A M] [SetLike ฯƒA A] [AddSubgroupClass ฯƒA A] [SetLike ฯƒM M] [AddSubgroupClass ฯƒM M] (๐’œ : โ„• โ†’ ฯƒA) (๐“œ : โ„• โ†’ ฯƒM) [GradedRing ๐’œ] [SetLike.GradedSMul ๐’œ ๐“œ] (d e : โ„ค) {U : TopologicalSpace.Opens โ†‘(ProjectiveSpectrum.top ๐’œ)} (g : (x : โ†ฅU) โ†’ โ†ฅ(Fiber ๐’œ (GradedModule.intShift ๐“œ (d + e)) โ†‘x)) (hg : (isLocallyFraction ๐’œ (GradedModule.intShift ๐“œ (d + e))).pred g) :
    (isLocallyFraction ๐’œ (GradedModule.intShift (GradedModule.intShift ๐“œ d) e)).pred fun (x : โ†ฅU) => (fiberIntShiftAddEquiv ๐’œ ๐“œ (โ†‘x) d e).symm (g x)

    Backward transfer of the local-fraction condition.

    The fraction certified for the single shift is rewritten with a power of ฯ„ in numerator and denominator, which raises its degree until the double shift can certify it. The neighbourhood shrinks to V โŠ“ Dโ‚Š(ฯ„) so that one ฯ„ serves every point of it.

    theorem AlgebraicGeometry.Proj.pred_intShift_add_of_pred {A M ฯƒA ฯƒM : Type u} [CommRing A] [AddCommGroup M] [Module A M] [SetLike ฯƒA A] [AddSubgroupClass ฯƒA A] [SetLike ฯƒM M] [AddSubgroupClass ฯƒM M] (๐’œ : โ„• โ†’ ฯƒA) (๐“œ : โ„• โ†’ ฯƒM) [GradedRing ๐’œ] [SetLike.GradedSMul ๐’œ ๐“œ] (d e : โ„ค) {U : TopologicalSpace.Opens โ†‘(ProjectiveSpectrum.top ๐’œ)} (f : (x : โ†ฅU) โ†’ โ†ฅ(Fiber ๐’œ (GradedModule.intShift (GradedModule.intShift ๐“œ d) e) โ†‘x)) (hf : (isLocallyFraction ๐’œ (GradedModule.intShift (GradedModule.intShift ๐“œ d) e)).pred f) :
    (isLocallyFraction ๐’œ (GradedModule.intShift ๐“œ (d + e))).pred fun (x : โ†ฅU) => (fiberIntShiftAddEquiv ๐’œ ๐“œ (โ†‘x) d e) (f x)

    Forward transfer of the local-fraction condition.

    Nothing moves: the fraction is the same, and only the numerator's membership certificate is rebuilt, through the unconditional inclusion.

    noncomputable def AlgebraicGeometry.Proj.sectionAddEquivIntShiftAdd {A M ฯƒA ฯƒM : Type u} [CommRing A] [AddCommGroup M] [Module A M] [SetLike ฯƒA A] [AddSubgroupClass ฯƒA A] [SetLike ฯƒM M] [AddSubgroupClass ฯƒM M] (๐’œ : โ„• โ†’ ฯƒA) (๐“œ : โ„• โ†’ ฯƒM) [GradedRing ๐’œ] [SetLike.GradedSMul ๐’œ ๐“œ] (d e : โ„ค) (U : TopologicalSpace.Opens โ†‘(ProjectiveSpectrum.top ๐’œ)) :

    The two twists have the same sections over every open.

    Equations
    • One or more equations did not get rendered due to their size.
    Instances For
      noncomputable def AlgebraicGeometry.Proj.sectionLinearEquivIntShiftAdd {A M ฯƒA ฯƒM : Type u} [CommRing A] [AddCommGroup M] [Module A M] [SetLike ฯƒA A] [AddSubgroupClass ฯƒA A] [SetLike ฯƒM M] [AddSubgroupClass ฯƒM M] (๐’œ : โ„• โ†’ ฯƒA) (๐“œ : โ„• โ†’ ฯƒM) [GradedRing ๐’œ] [SetLike.GradedSMul ๐’œ ๐“œ] (d e : โ„ค) (U : TopologicalSpace.Opens โ†‘(ProjectiveSpectrum.top ๐’œ)) :

      The section comparison is linear over the structure-sheaf sections.

      Equations
      • One or more equations did not get rendered due to their size.
      Instances For
        noncomputable def AlgebraicGeometry.Proj.associatedSheafIntShiftAddIso {A M ฯƒA ฯƒM : Type u} [CommRing A] [AddCommGroup M] [Module A M] [SetLike ฯƒA A] [AddSubgroupClass ฯƒA A] [SetLike ฯƒM M] [AddSubgroupClass ฯƒM M] (๐’œ : โ„• โ†’ ฯƒA) (๐“œ : โ„• โ†’ ฯƒM) [GradedRing ๐’œ] [SetLike.GradedSMul ๐’œ ๐“œ] (d e : โ„ค) :

        O(d)(e) โ‰… O(d + e), on the sheaf side.

        Equations
        • One or more equations did not get rendered due to their size.
        Instances For
          noncomputable def AlgebraicGeometry.Proj.sheafTwistAddIso {A M ฯƒA ฯƒM : Type u} [CommRing A] [AddCommGroup M] [Module A M] [SetLike ฯƒA A] [AddSubgroupClass ฯƒA A] [SetLike ฯƒM M] [AddSubgroupClass ฯƒM M] (๐’œ : โ„• โ†’ ฯƒA) (๐“œ : โ„• โ†’ ฯƒM) [GradedRing ๐’œ] [SetLike.GradedSMul ๐’œ ๐“œ] (d e : โ„ค) :
          sheafTwist ๐’œ (GradedModule.intShift ๐“œ d) e โ‰… sheafTwist ๐’œ ๐“œ (d + e)

          The integer twists compose.

          The statement TwistingSheaf.lean records as belonging "with the later quasi-coherence/basic-open equivalence", and the integer analogue of sheafNatTwistAddIso. Definitionally this is associatedSheafIntShiftAddIso; it is restated in twist language because that is how callers meet it.

          Equations
          Instances For
            noncomputable def AlgebraicGeometry.Proj.twistingSheafAddIso {A ฯƒA : Type u} [CommRing A] [SetLike ฯƒA A] [AddSubgroupClass ฯƒA A] (๐’œ : โ„• โ†’ ฯƒA) [GradedRing ๐’œ] [SetLike.GradedSMul ๐’œ ๐’œ] (d e : โ„ค) :
            sheafTwist ๐’œ (GradedModule.intShift ๐’œ d) e โ‰… twistingSheaf ๐’œ (d + e)

            O(d)(e) โ‰… O(d + e).

            The headline instance of sheafTwistAddIso, at the graded ring as a module over itself.

            Equations
            Instances For