Documentation

Mathlib.CategoryTheory.Abelian.Projective.Ext

Computing Ext using a projective resolution #

Given a projective resolution R of an object X 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.complex and to make computations in the Ext-group.

TODO #

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

Equations
Instances For

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

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

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

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