Documentation

Mathlib.CategoryTheory.Abelian.Injective.Ext

Computing Ext using an injective resolution #

Given an injective resolution R of an object Y in an abelian category C, we provide an API in order to construct elements in Ext X Y n in terms of the complex R.cocomplex and to make computations in the Ext-group.

If R is an injective resolution of Y, then Ext X Y n identifies to the type of cohomology classes of degree n from (singleFunctor C 0).obj X to R.cochainComplex.

Equations
Instances For

    If R is an injective resolution of Y, then Ext X Y n identifies to the group of cohomology classes of degree n from (singleFunctor C 0).obj X to R.cochainComplex.

    Equations
    Instances For
      noncomputable def CategoryTheory.InjectiveResolution.extMk {C : Type u} [Category.{v, u} C] [Abelian C] [HasExt C] {X Y : C} (R : InjectiveResolution Y) {n : ℕ} (f : X ⟶ R.cocomplex.X n) (m : ℕ) (hm : n + 1 = m) (hf : CategoryStruct.comp f (R.cocomplex.d n m) = 0) :

      Given an injective resolution R of an object Y of an abelian category, this is a constructor for elements in Ext X Y n which takes as an input a "cocycle" f : X ⟶ R.cocomplex.X n.

      Equations
      • One or more equations did not get rendered due to their size.
      Instances For
        theorem CategoryTheory.InjectiveResolution.add_extMk {C : Type u} [Category.{v, u} C] [Abelian C] [HasExt C] {X Y : C} (R : InjectiveResolution Y) {n : ℕ} (f g : X ⟶ R.cocomplex.X n) (m : ℕ) (hm : n + 1 = m) (hf : CategoryStruct.comp f (R.cocomplex.d n m) = 0) (hg : CategoryStruct.comp g (R.cocomplex.d n m) = 0) :
        R.extMk f m hm hf + R.extMk g m hm hg = R.extMk (f + g) m hm ⋯
        theorem CategoryTheory.InjectiveResolution.sub_extMk {C : Type u} [Category.{v, u} C] [Abelian C] [HasExt C] {X Y : C} (R : InjectiveResolution Y) {n : ℕ} (f g : X ⟶ R.cocomplex.X n) (m : ℕ) (hm : n + 1 = m) (hf : CategoryStruct.comp f (R.cocomplex.d n m) = 0) (hg : CategoryStruct.comp g (R.cocomplex.d n m) = 0) :
        R.extMk f m hm hf - R.extMk g m hm hg = R.extMk (f - g) m hm ⋯
        theorem CategoryTheory.InjectiveResolution.neg_extMk {C : Type u} [Category.{v, u} C] [Abelian C] [HasExt C] {X Y : C} (R : InjectiveResolution Y) {n : ℕ} (f : X ⟶ R.cocomplex.X n) (m : ℕ) (hm : n + 1 = m) (hf : CategoryStruct.comp f (R.cocomplex.d n m) = 0) :
        -R.extMk f m hm hf = R.extMk (-f) m hm ⋯
        @[simp]
        theorem CategoryTheory.InjectiveResolution.extMk_zero {C : Type u} [Category.{v, u} C] [Abelian C] [HasExt C] {X Y : C} (R : InjectiveResolution Y) {n : ℕ} (m : ℕ) (hm : n + 1 = m) :
        R.extMk 0 m hm ⋯ = 0
        theorem CategoryTheory.InjectiveResolution.extMk_eq_zero_iff {C : Type u} [Category.{v, u} C] [Abelian C] [HasExt C] {X Y : C} (R : InjectiveResolution Y) {n : ℕ} (f : X ⟶ R.cocomplex.X n) (m : ℕ) (hm : n + 1 = m) (hf : CategoryStruct.comp f (R.cocomplex.d n m) = 0) (p : ℕ) (hp : p + 1 = n) :
        R.extMk f m hm hf = 0 ↔ ∃ (g : X ⟶ R.cocomplex.X p), CategoryStruct.comp g (R.cocomplex.d p n) = f
        theorem CategoryTheory.InjectiveResolution.extMk_surjective {C : Type u} [Category.{v, u} C] [Abelian C] [HasExt C] {X Y : C} (R : InjectiveResolution Y) {n : ℕ} (α : Abelian.Ext X Y n) (m : ℕ) (hm : n + 1 = m) :
        ∃ (f : X ⟶ R.cocomplex.X n) (hf : CategoryStruct.comp f (R.cocomplex.d n m) = 0), R.extMk f m hm hf = α
        theorem CategoryTheory.InjectiveResolution.mk₀_comp_extMk {C : Type u} [Category.{v, u} C] [Abelian C] [HasExt C] {X Y : C} (R : InjectiveResolution Y) {n : ℕ} (f : X ⟶ R.cocomplex.X n) (m : ℕ) (hm : n + 1 = m) (hf : CategoryStruct.comp f (R.cocomplex.d n m) = 0) {X' : C} (g : X' ⟶ X) :
        (Abelian.Ext.mk₀ g).comp (R.extMk f m hm hf) ⋯ = R.extMk (CategoryStruct.comp g f) m hm ⋯
        theorem CategoryTheory.InjectiveResolution.extMk_comp_mk₀ {C : Type u} [Category.{v, u} C] [Abelian C] [HasExt C] {X Y : C} {R : InjectiveResolution Y} {n : ℕ} (f : X ⟶ R.cocomplex.X n) (m : ℕ) (hm : n + 1 = m) (hf : CategoryStruct.comp f (R.cocomplex.d n m) = 0) {Y' : C} {R' : InjectiveResolution Y'} {g : Y ⟶ Y'} (φ : R.Hom R' g) :
        (R.extMk f m hm hf).comp (Abelian.Ext.mk₀ g) ⋯ = R'.extMk (CategoryStruct.comp f (φ.hom.f n)) m hm ⋯