Documentation

Mathlib.CategoryTheory.Abelian.InjectiveResolution

Abelian categories with enough injectives have injective resolutions #

Main results #

When the underlying category is abelian:

def CategoryTheory.InjectiveResolution.descFZero {C : Type u} [Category.{v, u} C] [Limits.HasZeroObject C] [Limits.HasZeroMorphisms C] {Y Z : C} (f : Z Y) (I : InjectiveResolution Y) (J : InjectiveResolution Z) :
J.cocomplex.X 0 I.cocomplex.X 0

Auxiliary construction for desc.

Equations
Instances For
    theorem CategoryTheory.InjectiveResolution.exact₀ {C : Type u} [Category.{v, u} C] [Abelian C] {Z : C} (I : InjectiveResolution Z) :
    (ShortComplex.mk (I.f 0) (I.cocomplex.d 0 1) ).Exact
    def CategoryTheory.InjectiveResolution.descFOne {C : Type u} [Category.{v, u} C] [Abelian C] {Y Z : C} (f : Z Y) (I : InjectiveResolution Y) (J : InjectiveResolution Z) :
    J.cocomplex.X 1 I.cocomplex.X 1

    Auxiliary construction for desc.

    Equations
    Instances For
      @[simp]
      theorem CategoryTheory.InjectiveResolution.descFOne_zero_comm {C : Type u} [Category.{v, u} C] [Abelian C] {Y Z : C} (f : Z Y) (I : InjectiveResolution Y) (J : InjectiveResolution Z) :
      CategoryStruct.comp (J.cocomplex.d 0 1) (descFOne f I J) = CategoryStruct.comp (descFZero f I J) (I.cocomplex.d 0 1)
      def CategoryTheory.InjectiveResolution.descFSucc {C : Type u} [Category.{v, u} C] [Abelian C] {Y Z : C} (I : InjectiveResolution Y) (J : InjectiveResolution Z) (n : ) (g : J.cocomplex.X n I.cocomplex.X n) (g' : J.cocomplex.X (n + 1) I.cocomplex.X (n + 1)) (w : CategoryStruct.comp (J.cocomplex.d n (n + 1)) g' = CategoryStruct.comp g (I.cocomplex.d n (n + 1))) :
      (g'' : J.cocomplex.X (n + 2) I.cocomplex.X (n + 2)) ×' CategoryStruct.comp (J.cocomplex.d (n + 1) (n + 2)) g'' = CategoryStruct.comp g' (I.cocomplex.d (n + 1) (n + 2))

      Auxiliary construction for desc.

      Equations
      Instances For
        def CategoryTheory.InjectiveResolution.desc {C : Type u} [Category.{v, u} C] [Abelian C] {Y Z : C} (f : Z Y) (I : InjectiveResolution Y) (J : InjectiveResolution Z) :
        J.cocomplex I.cocomplex

        A morphism in C descends to a chain map between injective resolutions.

        Equations
        • One or more equations did not get rendered due to their size.
        Instances For
          @[simp]

          The resolution maps intertwine the descent of a morphism and that morphism.

          @[simp]
          theorem CategoryTheory.InjectiveResolution.desc_commutes_zero {C : Type u} [Category.{v, u} C] [Abelian C] {Y Z : C} (f : Z Y) (I : InjectiveResolution Y) (J : InjectiveResolution Z) :
          CategoryStruct.comp (J.f 0) ((desc f I J).f 0) = CategoryStruct.comp f (I.f 0)
          @[simp]
          theorem CategoryTheory.InjectiveResolution.desc_commutes_zero_assoc {C : Type u} [Category.{v, u} C] [Abelian C] {Y Z : C} (f : Z Y) (I : InjectiveResolution Y) (J : InjectiveResolution Z) {Z✝ : C} (h : I.cocomplex.X 0 Z✝) :
          def CategoryTheory.InjectiveResolution.descHomotopyZeroZero {C : Type u} [Category.{v, u} C] [Abelian C] {Y Z : C} {I : InjectiveResolution Y} {J : InjectiveResolution Z} (f : I.cocomplex J.cocomplex) (comm : CategoryStruct.comp I f = 0) :
          I.cocomplex.X 1 J.cocomplex.X 0

          An auxiliary definition for descHomotopyZero.

          Equations
          Instances For
            @[simp]
            theorem CategoryTheory.InjectiveResolution.comp_descHomotopyZeroZero {C : Type u} [Category.{v, u} C] [Abelian C] {Y Z : C} {I : InjectiveResolution Y} {J : InjectiveResolution Z} (f : I.cocomplex J.cocomplex) (comm : CategoryStruct.comp I f = 0) :
            CategoryStruct.comp (I.cocomplex.d 0 1) (descHomotopyZeroZero f comm) = f.f 0
            @[simp]
            theorem CategoryTheory.InjectiveResolution.comp_descHomotopyZeroZero_assoc {C : Type u} [Category.{v, u} C] [Abelian C] {Y Z : C} {I : InjectiveResolution Y} {J : InjectiveResolution Z} (f : I.cocomplex J.cocomplex) (comm : CategoryStruct.comp I f = 0) {Z✝ : C} (h : J.cocomplex.X 0 Z✝) :
            def CategoryTheory.InjectiveResolution.descHomotopyZeroOne {C : Type u} [Category.{v, u} C] [Abelian C] {Y Z : C} {I : InjectiveResolution Y} {J : InjectiveResolution Z} (f : I.cocomplex J.cocomplex) (comm : CategoryStruct.comp I f = 0) :
            I.cocomplex.X 2 J.cocomplex.X 1

            An auxiliary definition for descHomotopyZero.

            Equations
            • One or more equations did not get rendered due to their size.
            Instances For
              @[simp]
              theorem CategoryTheory.InjectiveResolution.comp_descHomotopyZeroOne {C : Type u} [Category.{v, u} C] [Abelian C] {Y Z : C} {I : InjectiveResolution Y} {J : InjectiveResolution Z} (f : I.cocomplex J.cocomplex) (comm : CategoryStruct.comp I f = 0) :
              CategoryStruct.comp (I.cocomplex.d 1 2) (descHomotopyZeroOne f comm) = f.f 1 - CategoryStruct.comp (descHomotopyZeroZero f comm) (J.cocomplex.d 0 1)
              @[simp]
              theorem CategoryTheory.InjectiveResolution.comp_descHomotopyZeroOne_assoc {C : Type u} [Category.{v, u} C] [Abelian C] {Y Z : C} {I : InjectiveResolution Y} {J : InjectiveResolution Z} (f : I.cocomplex J.cocomplex) (comm : CategoryStruct.comp I f = 0) {Z✝ : C} (h : J.cocomplex.X 1 Z✝) :
              CategoryStruct.comp (I.cocomplex.d 1 2) (CategoryStruct.comp (descHomotopyZeroOne f comm) h) = CategoryStruct.comp (f.f 1 - CategoryStruct.comp (descHomotopyZeroZero f comm) (J.cocomplex.d 0 1)) h
              def CategoryTheory.InjectiveResolution.descHomotopyZeroSucc {C : Type u} [Category.{v, u} C] [Abelian C] {Y Z : C} {I : InjectiveResolution Y} {J : InjectiveResolution Z} (f : I.cocomplex J.cocomplex) (n : ) (g : I.cocomplex.X (n + 1) J.cocomplex.X n) (g' : I.cocomplex.X (n + 2) J.cocomplex.X (n + 1)) (w : f.f (n + 1) = CategoryStruct.comp (I.cocomplex.d (n + 1) (n + 2)) g' + CategoryStruct.comp g (J.cocomplex.d n (n + 1))) :
              I.cocomplex.X (n + 3) J.cocomplex.X (n + 2)

              An auxiliary definition for descHomotopyZero.

              Equations
              Instances For
                @[simp]
                theorem CategoryTheory.InjectiveResolution.comp_descHomotopyZeroSucc {C : Type u} [Category.{v, u} C] [Abelian C] {Y Z : C} {I : InjectiveResolution Y} {J : InjectiveResolution Z} (f : I.cocomplex J.cocomplex) (n : ) (g : I.cocomplex.X (n + 1) J.cocomplex.X n) (g' : I.cocomplex.X (n + 2) J.cocomplex.X (n + 1)) (w : f.f (n + 1) = CategoryStruct.comp (I.cocomplex.d (n + 1) (n + 2)) g' + CategoryStruct.comp g (J.cocomplex.d n (n + 1))) :
                CategoryStruct.comp (I.cocomplex.d (n + 2) (n + 3)) (descHomotopyZeroSucc f n g g' w) = f.f (n + 2) - CategoryStruct.comp g' (J.cocomplex.d (n + 1) (n + 2))
                @[simp]
                theorem CategoryTheory.InjectiveResolution.comp_descHomotopyZeroSucc_assoc {C : Type u} [Category.{v, u} C] [Abelian C] {Y Z : C} {I : InjectiveResolution Y} {J : InjectiveResolution Z} (f : I.cocomplex J.cocomplex) (n : ) (g : I.cocomplex.X (n + 1) J.cocomplex.X n) (g' : I.cocomplex.X (n + 2) J.cocomplex.X (n + 1)) (w : f.f (n + 1) = CategoryStruct.comp (I.cocomplex.d (n + 1) (n + 2)) g' + CategoryStruct.comp g (J.cocomplex.d n (n + 1))) {Z✝ : C} (h : J.cocomplex.X (n + 2) Z✝) :
                CategoryStruct.comp (I.cocomplex.d (n + 2) (n + 3)) (CategoryStruct.comp (descHomotopyZeroSucc f n g g' w) h) = CategoryStruct.comp (f.f (n + 2) - CategoryStruct.comp g' (J.cocomplex.d (n + 1) (n + 2))) h
                def CategoryTheory.InjectiveResolution.descHomotopyZero {C : Type u} [Category.{v, u} C] [Abelian C] {Y Z : C} {I : InjectiveResolution Y} {J : InjectiveResolution Z} (f : I.cocomplex J.cocomplex) (comm : CategoryStruct.comp I f = 0) :

                Any descent of the zero morphism is homotopic to zero.

                Equations
                • One or more equations did not get rendered due to their size.
                Instances For
                  def CategoryTheory.InjectiveResolution.descHomotopy {C : Type u} [Category.{v, u} C] [Abelian C] {Y Z : C} (f : Y Z) {I : InjectiveResolution Y} {J : InjectiveResolution Z} (g h : I.cocomplex J.cocomplex) (g_comm : CategoryStruct.comp I g = CategoryStruct.comp ((CochainComplex.single₀ C).map f) J) (h_comm : CategoryStruct.comp I h = CategoryStruct.comp ((CochainComplex.single₀ C).map f) J) :

                  Two descents of the same morphism are homotopic.

                  Equations
                  Instances For

                    The descent of the identity morphism is homotopic to the identity cochain map.

                    Equations
                    • One or more equations did not get rendered due to their size.
                    Instances For

                      The descent of a composition is homotopic to the composition of the descents.

                      Equations
                      • One or more equations did not get rendered due to their size.
                      Instances For

                        Any two injective resolutions are homotopy equivalent.

                        Equations
                        • One or more equations did not get rendered due to their size.
                        Instances For
                          @[simp]
                          theorem CategoryTheory.InjectiveResolution.homotopyEquiv_hom_ι {C : Type u} [Category.{v, u} C] [Abelian C] {X : C} (I J : InjectiveResolution X) :
                          CategoryStruct.comp I (I.homotopyEquiv J).hom = J
                          @[simp]
                          @[simp]
                          theorem CategoryTheory.InjectiveResolution.homotopyEquiv_inv_ι {C : Type u} [Category.{v, u} C] [Abelian C] {X : C} (I J : InjectiveResolution X) :
                          CategoryStruct.comp J (I.homotopyEquiv J).inv = I
                          @[simp]
                          @[reducible, inline]

                          An arbitrarily chosen injective resolution of an object.

                          Equations
                          Instances For

                            Taking injective resolutions is functorial, if considered with target the homotopy category (-indexed cochain complexes and chain maps up to homotopy).

                            Equations
                            • One or more equations did not get rendered due to their size.
                            Instances For

                              If I : InjectiveResolution X, then the chosen (injectiveResolutions C).obj X is isomorphic (in the homotopy category) to I.cocomplex.

                              Equations
                              Instances For
                                theorem CategoryTheory.InjectiveResolution.iso_hom_naturality {C : Type u} [Category.{v, u} C] [Abelian C] [HasInjectiveResolutions C] {X Y : C} (f : X Y) (I : InjectiveResolution X) (J : InjectiveResolution Y) (φ : I.cocomplex J.cocomplex) (comm : CategoryStruct.comp (I.f 0) (φ.f 0) = CategoryStruct.comp f (J.f 0)) :
                                theorem CategoryTheory.InjectiveResolution.iso_inv_naturality {C : Type u} [Category.{v, u} C] [Abelian C] [HasInjectiveResolutions C] {X Y : C} (f : X Y) (I : InjectiveResolution X) (J : InjectiveResolution Y) (φ : I.cocomplex J.cocomplex) (comm : CategoryStruct.comp (I.f 0) (φ.f 0) = CategoryStruct.comp f (J.f 0)) :
                                theorem CategoryTheory.exact_f_d {C : Type u} [Category.{v, u} C] [Abelian C] [EnoughInjectives C] {X Y : C} (f : X Y) :
                                (ShortComplex.mk f (Injective.d f) ).Exact

                                Our goal is to define InjectiveResolution.of Z : InjectiveResolution Z. The 0-th object in this resolution will just be Injective.under Z, i.e. an arbitrarily chosen injective object with a map from Z. After that, we build the n+1-st object as Injective.syzygies applied to the previously constructed morphism, and the map from the n-th object as Injective.d.

                                Auxiliary definition for InjectiveResolution.of.

                                Equations
                                • One or more equations did not get rendered due to their size.
                                Instances For
                                  theorem CategoryTheory.InjectiveResolution.of_def {C : Type u_1} [Category.{u_2, u_1} C] [Abelian C] [EnoughInjectives C] (Z : C) :
                                  of Z = mk (ofCocomplex Z) (((ofCocomplex Z).fromSingle₀Equiv Z).symm Injective.ι Z, )
                                  @[irreducible]

                                  In any abelian category with enough injectives, InjectiveResolution.of Z constructs an injective resolution of the object Z.

                                  Equations
                                  • One or more equations did not get rendered due to their size.
                                  Instances For