Module

ProjectivePresentation.lean

Nyll.SchemeTheory.Modules.ProjectivePresentation
9 declarations indexed from sourceView source ↗

Presentations by twists on projective space

A projective presentation describes a module as a quotient of a finite sum of twists of the structure sheaf. Pullbacks and tensor powers of twists retain these presentations.

Imports2
Imported by49

Declarations

AlgebraicGeometry.Scheme.Modules.ProjPresentation

A map to projective space with global sections of M that give frames on the standard charts and satisfy coordinate-ratio equations.

Source context 7 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
universe u
open CategoryTheory CategoryTheory.Limits Opposite MvPolynomial HomogeneousLocalization
namespace AlgebraicGeometry
attribute [local instance] MvPolynomial.gradedAlgebra
namespace Scheme.Modules
variable {R : Type u} [CommRing R] {X : Scheme.{u}}
structure ProjPresentation (M : X.Modules) (f : X ⟶ Spec (.of R)) (N : ℕ) where
  /-- The chosen global sections whose restrictions give the coordinate frames. -/
  σ : Fin (N + 1) → Γ(M, ⊤)
  /-- The morphism to projective space presented by the sections `σ`. -/
  toProj : X ⟶ Proj (MvPolynomial.homogeneousSubmodule (Fin (N + 1)) R)
  /-- The projective-space morphism lies over the specified map `f`. -/
  toProj_π : toProj ≫ ProjSpace.π R N = f
  /-- Each `σ i` restricts to a frame on every open contained in the preimage of the `i`th
      standard chart. -/
  frame : ∀ (i : Fin (N + 1)) (V : X.Opens),
    V ≤ toProj ⁻¹ᵁ Proj.basicOpen (MvPolynomial.homogeneousSubmodule (Fin (N + 1)) R)
        (MvPolynomial.X i) →
    Function.Bijective fun g : Γ(X, V) => g • (M.presheaf.map (homOfLE (le_top : V ≤ ⊤)).op (σ
        i) : Γ(M, V))
  /-- Pulling back a coordinate ratio on the `i`th chart expresses `σ j` as that ratio times `σ
      i`. -/
  app_ratio_smul : ∀ i j : Fin (N + 1),
    (toProj.app (Proj.basicOpen (MvPolynomial.homogeneousSubmodule (Fin (N + 1)) R)
        (MvPolynomial.X i))
        (Proj.awayToSection _ (MvPolynomial.X i) (ProjSpace.ratio R N i j))) •
        M.presheaf.map (homOfLE (le_top : toProj ⁻¹ᵁ
          Proj.basicOpen (MvPolynomial.homogeneousSubmodule (Fin (N + 1)) R) (MvPolynomial.X i)
              ≤ ⊤)).op (σ i)
      = M.presheaf.map (homOfLE (le_top : toProj ⁻¹ᵁ
          Proj.basicOpen (MvPolynomial.homogeneousSubmodule (Fin (N + 1)) R) (MvPolynomial.X i)
              ≤ ⊤)).op (σ j)
AlgebraicGeometry.Scheme.Modules.FiniteBySections

The module sheaf admits a presentation by global sections whose map to projective space is finite.

Source context 7 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
universe u
open CategoryTheory CategoryTheory.Limits Opposite MvPolynomial HomogeneousLocalization
namespace AlgebraicGeometry
attribute [local instance] MvPolynomial.gradedAlgebra
namespace Scheme.Modules
variable {R : Type u} [CommRing R] {X : Scheme.{u}}
def FiniteBySections (M : X.Modules) (f : X ⟶ Spec (.of R)) : Prop
AlgebraicGeometry.Scheme.Modules.ClosedImmersionBySections

The module sheaf admits a presentation by global sections whose map to projective space is a closed immersion.

Source context 7 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
universe u
open CategoryTheory CategoryTheory.Limits Opposite MvPolynomial HomogeneousLocalization
namespace AlgebraicGeometry
attribute [local instance] MvPolynomial.gradedAlgebra
namespace Scheme.Modules
variable {R : Type u} [CommRing R] {X : Scheme.{u}}
def ClosedImmersionBySections (M : X.Modules) (f : X ⟶ Spec (.of R)) : Prop
AlgebraicGeometry.ProjSpace.awayZeroEval

The homomorphism from the standard chart ring of projective zero-space to R induced by sending its single variable to 1.

Source context 7 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
universe u
open CategoryTheory CategoryTheory.Limits Opposite MvPolynomial HomogeneousLocalization
namespace AlgebraicGeometry
attribute [local instance] MvPolynomial.gradedAlgebra
namespace ProjSpace
variable (R : Type u) [CommRing R]
def awayZeroEval :
    HomogeneousLocalization.Away (MvPolynomial.homogeneousSubmodule (Fin 1) R) (X 0 :
        MvPolynomial (Fin 1) R) →+* R
AlgebraicGeometry.ProjSpace.pointOfProjZero

The R-point of projective zero-space obtained by evaluating its single homogeneous coordinate at 1.

Source context 7 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
universe u
open CategoryTheory CategoryTheory.Limits Opposite MvPolynomial HomogeneousLocalization
namespace AlgebraicGeometry
attribute [local instance] MvPolynomial.gradedAlgebra
namespace ProjSpace
variable (R : Type u) [CommRing R]
def pointOfProjZero : Spec (.of R) ⟶ Proj (MvPolynomial.homogeneousSubmodule (Fin 1) R)
AlgebraicGeometry.ProjSpace.pointOfProjZero_π
Source context 7 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
universe u
open CategoryTheory CategoryTheory.Limits Opposite MvPolynomial HomogeneousLocalization
namespace AlgebraicGeometry
attribute [local instance] MvPolynomial.gradedAlgebra
namespace ProjSpace
variable (R : Type u) [CommRing R]
theorem pointOfProjZero_π : pointOfProjZero R ≫ π R 0 = 𝟙 _
AlgebraicGeometry.ProjSpace.pointOfProjZero_preimage_basicOpen
Source context 7 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
universe u
open CategoryTheory CategoryTheory.Limits Opposite MvPolynomial HomogeneousLocalization
namespace AlgebraicGeometry
attribute [local instance] MvPolynomial.gradedAlgebra
namespace ProjSpace
variable (R : Type u) [CommRing R]
theorem pointOfProjZero_preimage_basicOpen :
    pointOfProjZero R ⁻¹ᵁ Proj.basicOpen (MvPolynomial.homogeneousSubmodule (Fin 1) R) (X 0) = ⊤
AlgebraicGeometry.Scheme.Modules.unitOne

The global section 1 of the unit module sheaf on X.

Source context 6 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
universe u
open CategoryTheory CategoryTheory.Limits Opposite MvPolynomial HomogeneousLocalization
namespace AlgebraicGeometry
attribute [local instance] MvPolynomial.gradedAlgebra
variable (R : Type u) [CommRing R]
def Scheme.Modules.unitOne (X : Scheme.{u}) :
    Γ((SheafOfModules.unit X.ringCatSheaf : X.Modules), (⊤ : X.Opens))
AlgebraicGeometry.Scheme.Modules.ProjPresentation.unitSpec

The presentation of the unit module sheaf on Spec R by its single global section 1 in projective zero-space.

Source context 6 commands

Surrounding namespaces, section variables, and local commands at this declaration.

noncomputable section
universe u
open CategoryTheory CategoryTheory.Limits Opposite MvPolynomial HomogeneousLocalization
namespace AlgebraicGeometry
attribute [local instance] MvPolynomial.gradedAlgebra
variable (R : Type u) [CommRing R]
def Scheme.Modules.ProjPresentation.unitSpec :
    Scheme.Modules.ProjPresentation (SheafOfModules.unit (Spec (.of R)).ringCatSheaf : (Spec
        (.of R)).Modules)
      (𝟙 (Spec (.of R))) 0 where
  σ := fun _ => Scheme.Modules.unitOne (Spec (.of R))
  toProj := ProjSpace.pointOfProjZero R
  toProj_π := ProjSpace.pointOfProjZero_π R
  frame := fun i V _ => by
    have h : (Scheme.Modules.presheaf (SheafOfModules.unit (Spec (.of R)).ringCatSheaf : (Spec
        (.of R)).Modules)).map
        (homOfLE (le_top : V ≤ ⊤)).op (Scheme.Modules.unitOne (Spec (.of R)))
        = (show Γ(Spec (.of R), V) from 1) := by
      change ((Spec (.of R)).ringCatSheaf.obj.map (homOfLE (le_top : V ≤ ⊤)).op).hom 1 = 1
      exact map_one _
    rw [h]
    change Function.Bijective fun g : Γ(Spec (.of R), V) => g * 1
    simp only [mul_one]
    exact Function.bijective_id
  app_ratio_smul := fun i j => by
    have hi : i = 0 := Fin.eq_zero i
    have hj : j = 0 := Fin.eq_zero j
    subst hi hj
    rw [ProjSpace.ratio_self, map_one, map_one, one_smul]