Module

TensorPowerComparison.lean

Nyll.SchemeTheory.Modules.TensorPowerComparison
3 declarations indexed from sourceView source ↗

Canonical comparisons for tensor powers of module sheaves

Tensor powers add under tensor product, transport along an isomorphism, and commute with pullback. Each comparison is constructed recursively from the monoidal structure.

Declarations

AlgebraicGeometry.Scheme.Modules.tensorPowAdd

Tensoring powers of degrees m and n gives the power of degree m + n.

Source context 5 commands

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

noncomputable section
universe u
open CategoryTheory MonoidalCategory
namespace AlgebraicGeometry.Scheme.Modules
variable {X : Scheme.{u}}
def tensorPowAdd (L : X.Modules) (m : ℕ) :
    (n : ℕ) → (L.tensorPow m ⊗ L.tensorPow n ≅ L.tensorPow (m + n))
  | 0 => ρ_ (L.tensorPow m)
  | n + 1 =>
    (α_ (L.tensorPow m) (L.tensorPow n) L).symm ≪≫ whiskerRightIso (tensorPowAdd L m n) L
AlgebraicGeometry.Scheme.Modules.tensorPowMapIso

Transport a tensor power along an isomorphism of its module sheaf.

Source context 5 commands

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

noncomputable section
universe u
open CategoryTheory MonoidalCategory
namespace AlgebraicGeometry.Scheme.Modules
variable {X : Scheme.{u}}
def tensorPowMapIso {L₁ L₂ : X.Modules} (e : L₁ ≅ L₂) :
    (n : ℕ) → (L₁.tensorPow n ≅ L₂.tensorPow n)
  | 0 => Iso.refl _
  | n + 1 => tensorIso (tensorPowMapIso e n) e
AlgebraicGeometry.Scheme.Modules.pullbackTensorPowIso

Pullback commutes with tensor powers through its canonical monoidal comparison.

Source context 5 commands

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

noncomputable section
universe u
open CategoryTheory MonoidalCategory
namespace AlgebraicGeometry.Scheme.Modules
variable {X : Scheme.{u}}
def pullbackTensorPowIso {Y : Scheme.{u}} (c : X ⟶ Y) (L : Y.Modules) :
    (n : ℕ) → ((Modules.pullback c).obj (L.tensorPow n) ≅
      ((Modules.pullback c).obj L).tensorPow n)
  | 0 => pullbackTensorUnitObjIso c
  | n + 1 => pullbackTensorObjIso c (L.tensorPow n) L ≪≫
      whiskerRightIso (pullbackTensorPowIso c L n) ((Modules.pullback c).obj L)