Module

FiniteTypeCoprod.lean

Nyll.SchemeTheory.Modules.FiniteTypeCoprod
6 declarations indexed from sourceView source ↗

Finite type of binary coproducts

The product of the two original local generating covers is again a cover. On each product chart both finite generating families restrict, and their disjoint union generates the actual categorical coproduct.

Imports7
  • Nyll.SchemeTheory.Modules.FiniteTypeQuotient
  • Mathlib.Algebra.Category.ModuleCat.Sheaf.Free
  • Mathlib.Algebra.Category.ModuleCat.Sheaf.PushforwardContinuous
  • Mathlib.CategoryTheory.Limits.Preserves.Shapes.BinaryProducts
  • Mathlib.CategoryTheory.Limits.Preserves.Finite
  • Mathlib.CategoryTheory.Limits.Shapes.BinaryProducts.BinaryProducts
  • Mathlib.Basic.Finite.Sum
Imported by2

Declarations

SheafOfModules.GeneratingSections.coprod

Generators of both summands give generators indexed by their disjoint union.

Source context 5 commands

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

noncomputable section
universe u v u₁
open CategoryTheory Limits
namespace SheafOfModules
variable {C : Type u₁} [Category.{v} C] {J : GrothendieckTopology C}
  {R : Sheaf J RingCat.{u}}
  [HasSheafify J AddCommGrpCat.{u}] [J.WEqualsLocallyBijective AddCommGrpCat.{u}]
def GeneratingSections.coprod {M N : SheafOfModules.{u} R}
    (p : M.GeneratingSections) (q : N.GeneratingSections) :
    (M ⨿ N).GeneratingSections where
  I := p.I ⊕ q.I
  s := (M ⨿ N).freeHomEquiv
    ((freeSumIso (R := R) p.I q.I).inv ≫ Limits.coprod.map p.π q.π)
  epi := by
    rw [Equiv.symm_apply_apply]
    infer_instance
Source context 5 commands

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

noncomputable section
universe u v u₁
open CategoryTheory Limits
namespace SheafOfModules
variable {C : Type u₁} [Category.{v} C] {J : GrothendieckTopology C}
  {R : Sheaf J RingCat.{u}}
  [HasSheafify J AddCommGrpCat.{u}] [J.WEqualsLocallyBijective AddCommGrpCat.{u}]
instance {M N : SheafOfModules.{u} R}
    (p : M.GeneratingSections) (q : N.GeneratingSections)
    [p.IsFiniteType] [q.IsFiniteType] : (p.coprod q).IsFiniteType where
  finite := inferInstanceAs (Finite (p.I ⊕ q.I))
SheafOfModules.GeneratingSections.restrict

Restrict a generating family further along a map of charts.

Source context 6 commands

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

noncomputable section
universe u v u₁
open CategoryTheory Limits
namespace SheafOfModules
variable {C : Type u₁} [Category.{v} C] {J : GrothendieckTopology C}
  {R : Sheaf J RingCat.{u}}
  [HasSheafify J AddCommGrpCat.{u}] [J.WEqualsLocallyBijective AddCommGrpCat.{u}]
variable [HasBinaryProducts C] [HasPullbacks C]
  [∀ X : C, HasSheafify (J.over X) AddCommGrpCat.{u}]
  [∀ X : C, (J.over X).WEqualsLocallyBijective AddCommGrpCat.{u}]
def GeneratingSections.restrict {M : SheafOfModules.{u} R} {X Y : C}
    (p : (M.over Y).GeneratingSections) (f : X ⟶ Y) :
    (M.over X).GeneratingSections
Source context 6 commands

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

noncomputable section
universe u v u₁
open CategoryTheory Limits
namespace SheafOfModules
variable {C : Type u₁} [Category.{v} C] {J : GrothendieckTopology C}
  {R : Sheaf J RingCat.{u}}
  [HasSheafify J AddCommGrpCat.{u}] [J.WEqualsLocallyBijective AddCommGrpCat.{u}]
variable [HasBinaryProducts C] [HasPullbacks C]
  [∀ X : C, HasSheafify (J.over X) AddCommGrpCat.{u}]
  [∀ X : C, (J.over X).WEqualsLocallyBijective AddCommGrpCat.{u}]
instance {M : SheafOfModules.{u} R} {X Y : C}
    (p : (M.over Y).GeneratingSections) (f : X ⟶ Y) [p.IsFiniteType] :
    (p.restrict f).IsFiniteType
SheafOfModules.coprodChartGenerators
Source context 6 commands

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

noncomputable section
universe u v u₁
open CategoryTheory Limits
namespace SheafOfModules
variable {C : Type u₁} [Category.{v} C] {J : GrothendieckTopology C}
  {R : Sheaf J RingCat.{u}}
  [HasSheafify J AddCommGrpCat.{u}] [J.WEqualsLocallyBijective AddCommGrpCat.{u}]
variable [HasBinaryProducts C] [HasPullbacks C]
  [∀ X : C, HasSheafify (J.over X) AddCommGrpCat.{u}]
  [∀ X : C, (J.over X).WEqualsLocallyBijective AddCommGrpCat.{u}]
def coprodChartGenerators {M N : SheafOfModules.{u} R}
    (p : M.LocalGeneratorsData) (q : N.LocalGeneratorsData) (i : p.I) (j : q.I) :
    ((M ⨿ N).over (p.X i ⨯ q.X j)).GeneratingSections
SheafOfModules.isFiniteType_coprod

The actual binary coproduct of two finite-type sheaves is finite type.

Source context 6 commands

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

noncomputable section
universe u v u₁
open CategoryTheory Limits
namespace SheafOfModules
variable {C : Type u₁} [Category.{v} C] {J : GrothendieckTopology C}
  {R : Sheaf J RingCat.{u}}
  [HasSheafify J AddCommGrpCat.{u}] [J.WEqualsLocallyBijective AddCommGrpCat.{u}]
variable [HasBinaryProducts C] [HasPullbacks C]
  [∀ X : C, HasSheafify (J.over X) AddCommGrpCat.{u}]
  [∀ X : C, (J.over X).WEqualsLocallyBijective AddCommGrpCat.{u}]
theorem isFiniteType_coprod {M N : SheafOfModules.{u} R}
    [M.IsFiniteType] [N.IsFiniteType] : (M ⨿ N).IsFiniteType