Module

CechLocalizationDegreeZero.lean

Nyll.EtaleFundamentalGroups.Purity.CechLocalizationDegreeZero
8 declarations indexed from sourceView source ↗

The canonical degree-zero term of the Čech complex

The antidiagonal indexing the zeroth term has exactly one summand. Its inclusion identifies the zeroth term of each Čech factor with the ring. Tensoring this identification gives the canonical coefficient identification, natural in every module.

Declarations

EtaleFundamentalGroups.Purity.tensorZeroSummandOut
Source context 5 commands

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

noncomputable section
open CategoryTheory Limits MonoidalCategory HomologicalComplex
namespace EtaleFundamentalGroups.Purity
universe u
variable {R : Type u} [CommRing R]
def tensorZeroSummandOut (K L : CochainComplex (ModuleCat.{u} R) ℕ)
    (i j : ℕ) (hij : ComplexShape.π (ComplexShape.up ℕ) (ComplexShape.up ℕ)
      (ComplexShape.up ℕ) (i, j) = 0) :
    ((curriedTensor (ModuleCat.{u} R)).obj (K.X i)).obj (L.X j) ⟶ K.X 0 ⊗ L.X 0
EtaleFundamentalGroups.Purity.tensorComplexZeroIso

In degree zero a nonnegative tensor complex has its unique (0,0) summand.

Source context 5 commands

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

noncomputable section
open CategoryTheory Limits MonoidalCategory HomologicalComplex
namespace EtaleFundamentalGroups.Purity
universe u
variable {R : Type u} [CommRing R]
def tensorComplexZeroIso (K L : CochainComplex (ModuleCat.{u} R) ℕ) :
    K.X 0 ⊗ L.X 0 ≅ (HomologicalComplex.tensorObj K L).X 0 where
  hom := ιTensorObj K L 0 0 0 rfl
  inv := mapBifunctorDesc (F := curriedTensor (ModuleCat.{u} R))
    (c := ComplexShape.up ℕ) (tensorZeroSummandOut K L)
  hom_inv_id := by
    rw [ι_mapBifunctorDesc]
    change (𝟙 (K.X 0) ⊗ₘ 𝟙 (L.X 0)) = 𝟙 _
    exact id_tensorHom_id (K.X 0) (L.X 0)
  inv_hom_id := by
    apply mapBifunctor.hom_ext
    intro i j hij
    have h : i + j = 0 := hij
    have hi : i = 0 := by omega
    have hj : j = 0 := by omega
    subst i
    subst j
    rw [← Category.assoc, ι_mapBifunctorDesc]
    change (𝟙 (K.X 0) ⊗ₘ 𝟙 (L.X 0)) ≫ ιTensorObj K L 0 0 0 rfl =
      ιTensorObj K L 0 0 0 rfl ≫ 𝟙 _
    rw [id_tensorHom_id, Category.id_comp, Category.comp_id]
EtaleFundamentalGroups.Purity.cechLocalizationZeroIso

The zeroth Čech term is canonically the coefficient ring.

Source context 5 commands

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

noncomputable section
open CategoryTheory Limits MonoidalCategory HomologicalComplex
namespace EtaleFundamentalGroups.Purity
universe u
variable {R : Type u} [CommRing R]
def cechLocalizationZeroIso : (xs : List R) →
    (cechLocalizationComplex xs).X 0 ≅ ModuleCat.of R R
  | [] => singleObjXSelf (ComplexShape.up ℕ) 0 (ModuleCat.of R R)
  | x :: xs =>
    (tensorComplexZeroIso (principalLocalizationComplex x (ModuleCat.of R R))
      (cechLocalizationComplex xs)).symm ≪≫
      (tensorLeft (ModuleCat.of R R)).mapIso (cechLocalizationZeroIso xs) ≪≫
      λ_ (ModuleCat.of R R)
EtaleFundamentalGroups.Purity.cechCoefficientZeroIso

The canonical degree-zero coefficient identification.

Source context 5 commands

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

noncomputable section
open CategoryTheory Limits MonoidalCategory HomologicalComplex
namespace EtaleFundamentalGroups.Purity
universe u
variable {R : Type u} [CommRing R]
def cechCoefficientZeroIso (xs : List R) (M : ModuleCat.{u} R) :
    (((tensorLeft M).mapHomologicalComplex (ComplexShape.up ℕ)).obj
      (cechLocalizationComplex xs)).X 0 ≅ M
EtaleFundamentalGroups.Purity.cechCoefficientZeroIso_naturality

Degree-zero coefficient identification commutes with every coefficient morphism.

Source context 5 commands

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

noncomputable section
open CategoryTheory Limits MonoidalCategory HomologicalComplex
namespace EtaleFundamentalGroups.Purity
universe u
variable {R : Type u} [CommRing R]
theorem cechCoefficientZeroIso_naturality (xs : List R)
    {M N : ModuleCat.{u} R} (f : M ⟶ N) :
    ((tensorComplexCoefficientFunctor (cechLocalizationComplex xs)).map f).f 0 ≫
      (cechCoefficientZeroIso xs N).hom = (cechCoefficientZeroIso xs M).hom ≫ f
EtaleFundamentalGroups.Purity.cechHomologyZeroToModule

Degree-zero Čech cohomology, embedded in the coefficient module.

Source context 5 commands

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

noncomputable section
open CategoryTheory Limits MonoidalCategory HomologicalComplex
namespace EtaleFundamentalGroups.Purity
universe u
variable {R : Type u} [CommRing R]
def cechHomologyZeroToModule (xs : List R) (M : ModuleCat.{u} R) :
    ((((tensorLeft M).mapHomologicalComplex (ComplexShape.up ℕ)).obj
      (cechLocalizationComplex xs)).homology 0) ⟶ M
EtaleFundamentalGroups.Purity.cechHomologyZeroToModule_mono

The zeroth cohomology embeds because a nonnegative cochain complex has no incoming boundaries in degree zero.

Source context 5 commands

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

noncomputable section
open CategoryTheory Limits MonoidalCategory HomologicalComplex
namespace EtaleFundamentalGroups.Purity
universe u
variable {R : Type u} [CommRing R]
instance cechHomologyZeroToModule_mono (xs : List R) (M : ModuleCat.{u} R) :
    Mono (cechHomologyZeroToModule xs M)
EtaleFundamentalGroups.Purity.cechHomologyZeroToModule_naturality

The embedding of degree-zero cohomology is natural in coefficients.

Source context 5 commands

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

noncomputable section
open CategoryTheory Limits MonoidalCategory HomologicalComplex
namespace EtaleFundamentalGroups.Purity
universe u
variable {R : Type u} [CommRing R]
theorem cechHomologyZeroToModule_naturality (xs : List R)
    {M N : ModuleCat.{u} R} (f : M ⟶ N) :
    homologyMap ((tensorComplexCoefficientFunctor (cechLocalizationComplex xs)).map f) 0 ≫
      cechHomologyZeroToModule xs N = cechHomologyZeroToModule xs M ≫ f