Module

InjectiveResolutionExtLinear.lean

Nyll.EtaleFundamentalGroups.Purity.InjectiveResolutionExtLinear
9 declarations indexed from sourceView source ↗

Linear cocycle quotients for Ext from an injective resolution

The cocycle constructor for derived-category Ext is linear. Its surjectivity and its explicit coboundary criterion identify the quotient of cocycles by coboundaries with positive-degree Ext over the original scalar ring.

Imports9
  • Nyll.EtaleFundamentalGroups.Purity.DerivedLocalCohomology
  • Mathlib.Algebra.Homology.Additive
  • Mathlib.Algebra.Homology.DerivedCategory.Ext.Linear
  • Mathlib.Algebra.Homology.ShortComplex.HomologicalComplex
  • Mathlib.Algebra.Homology.ShortComplex.ModuleCat
  • Mathlib.CategoryTheory.Abelian.Injective.Ext
  • Mathlib.CategoryTheory.Linear.Yoneda
  • Mathlib.LinearAlgebra.Isomorphisms
  • Mathlib.LinearAlgebra.Quotient.Defs
Imported by2

Declarations

EtaleFundamentalGroups.Purity.injectiveResolutionLinearCoyonedaComplex

The complex of linear morphisms into a chosen injective resolution.

Source context 6 commands

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

noncomputable section
open CategoryTheory Opposite
namespace EtaleFundamentalGroups.Purity
universe u
variable {R : Type u} [CommRing R]
variable {M : ModuleCat.{u} R}
def injectiveResolutionLinearCoyonedaComplex
    (J : InjectiveResolution M) (X : ModuleCat.{u} R) :
    CochainComplex (ModuleCat.{u} R) ℕ
EtaleFundamentalGroups.Purity.injectiveResolutionLinearCoyonedaShortComplexSucc

The adjacent three terms computing positive-degree Ext.

Source context 6 commands

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

noncomputable section
open CategoryTheory Opposite
namespace EtaleFundamentalGroups.Purity
universe u
variable {R : Type u} [CommRing R]
variable {M : ModuleCat.{u} R}
def injectiveResolutionLinearCoyonedaShortComplexSucc
    (J : InjectiveResolution M) (X : ModuleCat.{u} R) (n : ℕ) :
    ShortComplex (ModuleCat.{u} R)
EtaleFundamentalGroups.Purity.injectiveResolution_extMk_smul

Scalar compatibility of the injective-resolution cocycle constructor.

Source context 6 commands

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

noncomputable section
open CategoryTheory Opposite
namespace EtaleFundamentalGroups.Purity
universe u
variable {R : Type u} [CommRing R]
variable {M : ModuleCat.{u} R}
theorem injectiveResolution_extMk_smul
    (J : InjectiveResolution M) {X : ModuleCat.{u} R} {n : ℕ}
    (f : X ⟶ J.cocomplex.X n) (m : ℕ) (hm : n + 1 = m)
    (hf : f ≫ J.cocomplex.d n m = 0) (a : R) :
    J.extMk (a • f) m hm (by
      rw [Linear.smul_comp, hf, smul_zero]) =
      a • J.extMk f m hm hf := by
  have h := J.mk₀_comp_extMk f m hm hf (a • 𝟙 X)
  simpa only [Linear.smul_comp, Category.id_comp,
    Abelian.Ext.mk₀_smul, Abelian.Ext.smul_comp,
    Abelian.Ext.mk₀_id_comp] using h.symm
EtaleFundamentalGroups.Purity.injectiveResolutionCyclesToExtSucc

A linear map from the cocycles in the Hom complex to Ext.

Source context 6 commands

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

noncomputable section
open CategoryTheory Opposite
namespace EtaleFundamentalGroups.Purity
universe u
variable {R : Type u} [CommRing R]
variable {M : ModuleCat.{u} R}
def injectiveResolutionCyclesToExtSucc
    (J : InjectiveResolution M) (X : ModuleCat.{u} R) (n : ℕ) :
    LinearMap.ker
        (injectiveResolutionLinearCoyonedaShortComplexSucc J X n).g.hom →ₗ[R]
      Abelian.Ext.{u} X M (n + 1) where
  toFun f := J.extMk f.1 (n + 2) (by omega) (by
    change f.1 ≫ J.cocomplex.d (n + 1) (n + 2) = 0
    exact f.2)
  map_add' f g := (J.add_extMk f.1 g.1 (n + 2) (by omega) f.2 g.2).symm
  map_smul' a f := injectiveResolution_extMk_smul J f.1 (n + 2) (by omega) f.2 a
EtaleFundamentalGroups.Purity.injectiveResolutionCyclesToExtSucc_surjective
Source context 6 commands

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

noncomputable section
open CategoryTheory Opposite
namespace EtaleFundamentalGroups.Purity
universe u
variable {R : Type u} [CommRing R]
variable {M : ModuleCat.{u} R}
theorem injectiveResolutionCyclesToExtSucc_surjective
    (J : InjectiveResolution M) (X : ModuleCat.{u} R) (n : ℕ) :
    Function.Surjective (injectiveResolutionCyclesToExtSucc J X n)
EtaleFundamentalGroups.Purity.injectiveResolutionCyclesToExtSucc_ker_eq_range

The kernel of the cocycle constructor is precisely the coboundaries.

Source context 6 commands

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

noncomputable section
open CategoryTheory Opposite
namespace EtaleFundamentalGroups.Purity
universe u
variable {R : Type u} [CommRing R]
variable {M : ModuleCat.{u} R}
theorem injectiveResolutionCyclesToExtSucc_ker_eq_range
    (J : InjectiveResolution M) (X : ModuleCat.{u} R) (n : ℕ) :
    LinearMap.ker (injectiveResolutionCyclesToExtSucc J X n) =
      LinearMap.range
        (injectiveResolutionLinearCoyonedaShortComplexSucc J X n).moduleCatToCycles
EtaleFundamentalGroups.Purity.injectiveResolutionCocycleQuotientEquivExtSucc

Positive Ext is the linear quotient of explicit cocycles by boundaries.

Source context 6 commands

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

noncomputable section
open CategoryTheory Opposite
namespace EtaleFundamentalGroups.Purity
universe u
variable {R : Type u} [CommRing R]
variable {M : ModuleCat.{u} R}
def injectiveResolutionCocycleQuotientEquivExtSucc
    (J : InjectiveResolution M) (X : ModuleCat.{u} R) (n : ℕ) :
    ((LinearMap.ker
        (injectiveResolutionLinearCoyonedaShortComplexSucc J X n).g.hom) ⧸
      LinearMap.range
        (injectiveResolutionLinearCoyonedaShortComplexSucc J X n).moduleCatToCycles) ≃ₗ[R]
      Abelian.Ext.{u} X M (n + 1)
EtaleFundamentalGroups.Purity.injectiveResolutionCocycleQuotientEquivExtSucc_apply_mk
Source context 6 commands

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

noncomputable section
open CategoryTheory Opposite
namespace EtaleFundamentalGroups.Purity
universe u
variable {R : Type u} [CommRing R]
variable {M : ModuleCat.{u} R}
theorem injectiveResolutionCocycleQuotientEquivExtSucc_apply_mk
    (J : InjectiveResolution M) (X : ModuleCat.{u} R) (n : ℕ)
    (f : LinearMap.ker
      (injectiveResolutionLinearCoyonedaShortComplexSucc J X n).g.hom) :
    injectiveResolutionCocycleQuotientEquivExtSucc J X n (Submodule.Quotient.mk f) =
      J.extMk f.1 (n + 2) (by omega) f.2 :=
  rfl
EtaleFundamentalGroups.Purity.injectiveResolutionCocycleQuotientEquivExtSucc_symm_extMk
Source context 6 commands

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

noncomputable section
open CategoryTheory Opposite
namespace EtaleFundamentalGroups.Purity
universe u
variable {R : Type u} [CommRing R]
variable {M : ModuleCat.{u} R}
theorem injectiveResolutionCocycleQuotientEquivExtSucc_symm_extMk
    (J : InjectiveResolution M) (X : ModuleCat.{u} R) (n : ℕ)
    (f : X ⟶ J.cocomplex.X (n + 1))
    (hf : f ≫ J.cocomplex.d (n + 1) (n + 2) = 0) :
    (injectiveResolutionCocycleQuotientEquivExtSucc J X n).symm
        (J.extMk f (n + 2) (by omega) hf) =
      Submodule.Quotient.mk ⟨f, hf⟩ :=
  (injectiveResolutionCocycleQuotientEquivExtSucc J X n).symm_apply_apply
    (Submodule.Quotient.mk ⟨f, hf⟩)