Module

UnrigidifiedGroup.lean

Nyll.AlgebraicCurves.Geometry.Picard.UnrigidifiedGroup
13 declarations indexed from sourceView source ↗

The commutative group of unrigidified Picard-zero classes

Tensor product and actual tensor inverses give the group structure without a section. Pullback is a group homomorphism.

Declarations

AlgebraicGeometry.RelPicard.Unrigidified.tensorBundle

Tensor product of actual invertible modules.

Source context 6 commands

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

universe u
open CategoryTheory CategoryTheory.Limits CategoryTheory.MonoidalCategory Opposite
open AlgebraicGeometry NeronModelInfra
noncomputable section
namespace AlgebraicGeometry.RelPicard.Unrigidified
variable {R : Type u} [CommRing R] {C : Scheme.{u}}
  {c : C ⟶ Spec (CommRingCat.of R)}
def tensorBundle {T : Scheme.{u}} {t : T ⟶ Spec (CommRingCat.of R)}
    (M N : LineBundle c t) : LineBundle c t
AlgebraicGeometry.RelPicard.Unrigidified.baseTwist_tensor_right
Source context 6 commands

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

universe u
open CategoryTheory CategoryTheory.Limits CategoryTheory.MonoidalCategory Opposite
open AlgebraicGeometry NeronModelInfra
noncomputable section
namespace AlgebraicGeometry.RelPicard.Unrigidified
variable {R : Type u} [CommRing R] {C : Scheme.{u}}
  {c : C ⟶ Spec (CommRingCat.of R)}
theorem baseTwist_tensor_right {T : Scheme.{u}} {t : T ⟶ Spec (CommRingCat.of R)}
    (M : LineBundle c t) {N N' : LineBundle c t} (h : BaseTwist c t N N') :
    BaseTwist c t (tensorBundle M N) (tensorBundle M N')
AlgebraicGeometry.RelPicard.Unrigidified.baseTwist_tensor_left
Source context 6 commands

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

universe u
open CategoryTheory CategoryTheory.Limits CategoryTheory.MonoidalCategory Opposite
open AlgebraicGeometry NeronModelInfra
noncomputable section
namespace AlgebraicGeometry.RelPicard.Unrigidified
variable {R : Type u} [CommRing R] {C : Scheme.{u}}
  {c : C ⟶ Spec (CommRingCat.of R)}
theorem baseTwist_tensor_left {T : Scheme.{u}} {t : T ⟶ Spec (CommRingCat.of R)}
    (N : LineBundle c t) {M M' : LineBundle c t} (h : BaseTwist c t M M') :
    BaseTwist c t (tensorBundle M N) (tensorBundle M' N)
AlgebraicGeometry.RelPicard.Unrigidified.classesMul

Tensor product descends to relative line-bundle classes.

Source context 6 commands

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

universe u
open CategoryTheory CategoryTheory.Limits CategoryTheory.MonoidalCategory Opposite
open AlgebraicGeometry NeronModelInfra
noncomputable section
namespace AlgebraicGeometry.RelPicard.Unrigidified
variable {R : Type u} [CommRing R] {C : Scheme.{u}}
  {c : C ⟶ Spec (CommRingCat.of R)}
def classesMul {T : Scheme.{u}} (t : T ⟶ Spec (CommRingCat.of R)) :
    Classes c t → Classes c t → Classes c t
AlgebraicGeometry.RelPicard.Unrigidified.fibrewiseZero_tensor
Source context 6 commands

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

universe u
open CategoryTheory CategoryTheory.Limits CategoryTheory.MonoidalCategory Opposite
open AlgebraicGeometry NeronModelInfra
noncomputable section
namespace AlgebraicGeometry.RelPicard.Unrigidified
variable {R : Type u} [CommRing R] {C : Scheme.{u}}
  {c : C ⟶ Spec (CommRingCat.of R)}
theorem fibrewiseZero_tensor {T : Scheme.{u}} {t : T ⟶ Spec (CommRingCat.of R)}
    {M N : LineBundle c t} (hM : FibrewiseZero M) (hN : FibrewiseZero N) :
    FibrewiseZero (tensorBundle M N)
AlgebraicGeometry.RelPicard.Unrigidified.zeroMul

Tensor product on fibrewise algebraically trivial classes.

Source context 6 commands

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

universe u
open CategoryTheory CategoryTheory.Limits CategoryTheory.MonoidalCategory Opposite
open AlgebraicGeometry NeronModelInfra
noncomputable section
namespace AlgebraicGeometry.RelPicard.Unrigidified
variable {R : Type u} [CommRing R] {C : Scheme.{u}}
  {c : C ⟶ Spec (CommRingCat.of R)}
def zeroMul (X : (Over (Spec (CommRingCat.of R)))ᵒᵖ)
    (x y : (zeroPresheaf c).obj X) : (zeroPresheaf c).obj X
AlgebraicGeometry.RelPicard.Unrigidified.zeroOne

The structure sheaf defines the identity class.

Source context 6 commands

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

universe u
open CategoryTheory CategoryTheory.Limits CategoryTheory.MonoidalCategory Opposite
open AlgebraicGeometry NeronModelInfra
noncomputable section
namespace AlgebraicGeometry.RelPicard.Unrigidified
variable {R : Type u} [CommRing R] {C : Scheme.{u}}
  {c : C ⟶ Spec (CommRingCat.of R)}
def zeroOne (X : (Over (Spec (CommRingCat.of R)))ᵒᵖ) : (zeroPresheaf c).obj X
AlgebraicGeometry.RelPicard.Unrigidified.inverseBundle

An actual tensor inverse of an invertible module.

Source context 6 commands

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

universe u
open CategoryTheory CategoryTheory.Limits CategoryTheory.MonoidalCategory Opposite
open AlgebraicGeometry NeronModelInfra
noncomputable section
namespace AlgebraicGeometry.RelPicard.Unrigidified
variable {R : Type u} [CommRing R] {C : Scheme.{u}}
  {c : C ⟶ Spec (CommRingCat.of R)}
def inverseBundle {T : Scheme.{u}} {t : T ⟶ Spec (CommRingCat.of R)}
    (M : LineBundle c t) : LineBundle c t
AlgebraicGeometry.RelPicard.Unrigidified.inverseBundle_iso
Source context 6 commands

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

universe u
open CategoryTheory CategoryTheory.Limits CategoryTheory.MonoidalCategory Opposite
open AlgebraicGeometry NeronModelInfra
noncomputable section
namespace AlgebraicGeometry.RelPicard.Unrigidified
variable {R : Type u} [CommRing R] {C : Scheme.{u}}
  {c : C ⟶ Spec (CommRingCat.of R)}
theorem inverseBundle_iso {T : Scheme.{u}} {t : T ⟶ Spec (CommRingCat.of R)}
    (M : LineBundle c t) : Nonempty (M.1 ⊗ (inverseBundle M).1 ≅ 𝟙_ _)
AlgebraicGeometry.RelPicard.Unrigidified.fibrewiseZero_inverse
Source context 6 commands

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

universe u
open CategoryTheory CategoryTheory.Limits CategoryTheory.MonoidalCategory Opposite
open AlgebraicGeometry NeronModelInfra
noncomputable section
namespace AlgebraicGeometry.RelPicard.Unrigidified
variable {R : Type u} [CommRing R] {C : Scheme.{u}}
  {c : C ⟶ Spec (CommRingCat.of R)}
theorem fibrewiseZero_inverse {T : Scheme.{u}} {t : T ⟶ Spec (CommRingCat.of R)}
    {M : LineBundle c t} (hM : FibrewiseZero M) : FibrewiseZero (inverseBundle M)
AlgebraicGeometry.RelPicard.Unrigidified.zeroInv

A tensor inverse defines the inverse relative class.

Source context 6 commands

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

universe u
open CategoryTheory CategoryTheory.Limits CategoryTheory.MonoidalCategory Opposite
open AlgebraicGeometry NeronModelInfra
noncomputable section
namespace AlgebraicGeometry.RelPicard.Unrigidified
variable {R : Type u} [CommRing R] {C : Scheme.{u}}
  {c : C ⟶ Spec (CommRingCat.of R)}
def zeroInv (X : (Over (Spec (CommRingCat.of R)))ᵒᵖ)
    (x : (zeroPresheaf c).obj X) : (zeroPresheaf c).obj X
AlgebraicGeometry.RelPicard.Unrigidified.zeroCommGroup

The commutative group structure supplied by tensor products and tensor inverses.

Source context 6 commands

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

universe u
open CategoryTheory CategoryTheory.Limits CategoryTheory.MonoidalCategory Opposite
open AlgebraicGeometry NeronModelInfra
noncomputable section
namespace AlgebraicGeometry.RelPicard.Unrigidified
variable {R : Type u} [CommRing R] {C : Scheme.{u}}
  {c : C ⟶ Spec (CommRingCat.of R)}
def zeroCommGroup (X : (Over (Spec (CommRingCat.of R)))ᵒᵖ) :
    CommGroup ((zeroPresheaf c).obj X) where
  mul := zeroMul X
  one := zeroOne X
  inv := zeroInv X
  mul_assoc := by
    rintro ⟨x, hx⟩ ⟨y, hy⟩ ⟨z, hz⟩
    apply Subtype.ext
    induction x using Quot.ind
    induction y using Quot.ind
    induction z using Quot.ind
    exact Quot.sound (baseTwist_of_iso (α_ _ _ _))
  one_mul := by
    rintro ⟨x, hx⟩
    apply Subtype.ext
    induction x using Quot.ind
    exact Quot.sound (baseTwist_of_iso (λ_ _))
  mul_one := by
    rintro ⟨x, hx⟩
    apply Subtype.ext
    induction x using Quot.ind
    exact Quot.sound (baseTwist_of_iso (ρ_ _))
  mul_comm := by
    rintro ⟨x, hx⟩ ⟨y, hy⟩
    apply Subtype.ext
    induction x using Quot.ind
    induction y using Quot.ind
    exact Quot.sound (baseTwist_of_iso (β_ _ _))
  inv_mul_cancel := by
    rintro ⟨x, hx⟩
    apply Subtype.ext
    change classesMul X.unop.hom (Quot.mk _ (inverseBundle (Quot.out x))) x = _
    have h : classesMul X.unop.hom (Quot.mk _ (inverseBundle (Quot.out x)))
        (Quot.mk _ (Quot.out x)) =
        Quot.mk _ ⟨𝟙_ (pullback c X.unop.hom).Modules,
          Scheme.Modules.isInvertible_unit _⟩ :=
      Quot.sound (baseTwist_of_iso
        (β_ (inverseBundle (Quot.out x)).1 (Quot.out x).1 ≪≫
          (inverseBundle_iso (Quot.out x)).some))
    exact (congrArg (classesMul X.unop.hom (Quot.mk _ (inverseBundle (Quot.out x))))
      (Quot.out_eq x)).symm.trans h
AlgebraicGeometry.RelPicard.Unrigidified.zeroCommGrpPresheaf

The actual commutative-group-valued unrigidified Picard-zero presheaf.

Source context 6 commands

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

universe u
open CategoryTheory CategoryTheory.Limits CategoryTheory.MonoidalCategory Opposite
open AlgebraicGeometry NeronModelInfra
noncomputable section
namespace AlgebraicGeometry.RelPicard.Unrigidified
variable {R : Type u} [CommRing R] {C : Scheme.{u}}
  {c : C ⟶ Spec (CommRingCat.of R)}
def zeroCommGrpPresheaf (c : C ⟶ Spec (CommRingCat.of R)) :
    (Over (Spec (CommRingCat.of R)))ᵒᵖ ⥤ CommGrpCat.{u + 1} where
  obj X := @CommGrpCat.of ((zeroPresheaf c).obj X) (zeroCommGroup X)
  map {X Y} φ :=
    let _ : CommGroup ((zeroPresheaf c).obj X) := zeroCommGroup X
    let _ : CommGroup ((zeroPresheaf c).obj Y) := zeroCommGroup Y
    CommGrpCat.ofHom
      { toFun := (zeroPresheaf c).map φ
        map_one' := by
          apply Subtype.ext
          exact Quot.sound (baseTwist_of_iso (Scheme.Modules.pullbackUnitIso _))
        map_mul' := by
          rintro ⟨x, hx⟩ ⟨y, hy⟩
          apply Subtype.ext
          induction x using Quot.ind
          induction y using Quot.ind
          exact Quot.sound (baseTwist_of_iso (Scheme.Modules.pullbackTensorObjIso _ _ _)) }
  map_id X := by
    let _ : CommGroup ((zeroPresheaf c).obj X) := zeroCommGroup X
    apply CommGrpCat.hom_ext
    apply MonoidHom.ext
    intro x
    exact ConcreteCategory.congr_hom ((zeroPresheaf c).map_id X) x
  map_comp {X Y Z} φ ψ := by
    let _ : CommGroup ((zeroPresheaf c).obj X) := zeroCommGroup X
    let _ : CommGroup ((zeroPresheaf c).obj Y) := zeroCommGroup Y
    let _ : CommGroup ((zeroPresheaf c).obj Z) := zeroCommGroup Z
    apply CommGrpCat.hom_ext
    apply MonoidHom.ext
    intro x
    exact ConcreteCategory.congr_hom ((zeroPresheaf c).map_comp φ ψ) x