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.

TODO #

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 = α