Documentation

Mathlib.CategoryTheory.Abelian.Homology

The object homology f g w, where w : f ≫ g = 0, can be identified with either a cokernel or a kernel. The isomorphism with a cokernel is homologyIsoCokernelLift, which was obtained elsewhere. In the case of an abelian category, this file shows the isomorphism with a kernel as well.

We use these isomorphisms to obtain the analogous api for homology:

@[inline, reducible]
abbrev CategoryTheory.Abelian.homologyC {A : Type u} [CategoryTheory.Category.{v, u} A] [CategoryTheory.Abelian A] {X : A} {Y : A} {Z : A} (f : X Y) (g : Y Z) (w : CategoryTheory.CategoryStruct.comp f g = 0) :
A

The cokernel of kernel.lift g f w. This is isomorphic to homology f g w. See homologyIsoCokernelLift.

Instances For
    @[inline, reducible]
    abbrev CategoryTheory.Abelian.homologyK {A : Type u} [CategoryTheory.Category.{v, u} A] [CategoryTheory.Abelian A] {X : A} {Y : A} {Z : A} (f : X Y) (g : Y Z) (w : CategoryTheory.CategoryStruct.comp f g = 0) :
    A

    The kernel of cokernel.desc f g w. This is isomorphic to homology f g w. See homologyIsoKernelDesc.

    Instances For
      @[inline, reducible]

      The canonical map from homologyC to homologyK. This is an isomorphism, and it is used in obtaining the API for homology f g w in the bottom of this file.

      Instances For

        The homology associated to f and g is isomorphic to a kernel.

        Instances For

          The canonical map from the kernel of g to the homology of f and g.

          Instances For

            The canonical map from the homology of f and g to the cokernel of f.

            Instances For

              Obtain a morphism from the homology, given a morphism from the kernel.

              Instances For

                Obtain a moprhism to the homology, given a morphism to the kernel.

                Instances For
                  theorem homology.hom_from_ext {A : Type u} [CategoryTheory.Category.{v, u} A] [CategoryTheory.Abelian A] {X : A} {Y : A} {Z : A} (f : X Y) (g : Y Z) (w : CategoryTheory.CategoryStruct.comp f g = 0) {W : A} (a : homology f g w W) (b : homology f g w W) (h : CategoryTheory.CategoryStruct.comp (homology.π' f g w) a = CategoryTheory.CategoryStruct.comp (homology.π' f g w) b) :
                  a = b
                  theorem homology.hom_to_ext {A : Type u} [CategoryTheory.Category.{v, u} A] [CategoryTheory.Abelian A] {X : A} {Y : A} {Z : A} (f : X Y) (g : Y Z) (w : CategoryTheory.CategoryStruct.comp f g = 0) {W : A} (a : W homology f g w) (b : W homology f g w) (h : CategoryTheory.CategoryStruct.comp a (homology.ι f g w) = CategoryTheory.CategoryStruct.comp b (homology.ι f g w)) :
                  a = b
                  @[simp]
                  theorem homology.π'_map {A : Type u} [CategoryTheory.Category.{v, u} A] [CategoryTheory.Abelian A] {X : A} {Y : A} {Z : A} (f : X Y) (g : Y Z) (w : CategoryTheory.CategoryStruct.comp f g = 0) {X' : A} {Y' : A} {Z' : A} (f' : X' Y') (g' : Y' Z') (w' : CategoryTheory.CategoryStruct.comp f' g' = 0) (α : CategoryTheory.Arrow.mk f CategoryTheory.Arrow.mk f') (β : CategoryTheory.Arrow.mk g CategoryTheory.Arrow.mk g') (h : α.right = β.left) :
                  @[simp]
                  theorem homology.map_ι {A : Type u} [CategoryTheory.Category.{v, u} A] [CategoryTheory.Abelian A] {X : A} {Y : A} {Z : A} (f : X Y) (g : Y Z) (w : CategoryTheory.CategoryStruct.comp f g = 0) {X' : A} {Y' : A} {Z' : A} (f' : X' Y') (g' : Y' Z') (w' : CategoryTheory.CategoryStruct.comp f' g' = 0) (α : CategoryTheory.Arrow.mk f CategoryTheory.Arrow.mk f') (β : CategoryTheory.Arrow.mk g CategoryTheory.Arrow.mk g') (h : α.right = β.left) :