Documentation

Mathlib.Algebra.Homology.ImageToKernel

Image-to-kernel comparison maps #

Whenever f : A ⟶ B and g : B ⟶ C satisfy w : f ≫ g = 0, we have image_le_kernel f g w : imageSubobject f ≤ kernelSubobject g (assuming the appropriate images and kernels exist).

imageToKernel f g w is the corresponding morphism between objects in C.

We define homology' f g w of such a pair as the cokernel of imageToKernel f g w.

Note: As part of the transition to the new homology API, homology is temporarily renamed homology'. It is planned that this definition shall be removed and replaced by ShortComplex.homology.

def imageToKernel {V : Type u} [CategoryTheory.Category.{v, u} V] [CategoryTheory.Limits.HasZeroMorphisms V] {A : V} {B : V} {C : V} (f : A B) [CategoryTheory.Limits.HasImage f] (g : B C) [CategoryTheory.Limits.HasKernel g] (w : CategoryTheory.CategoryStruct.comp f g = 0) :
CategoryTheory.Subobject.underlying.obj (CategoryTheory.Limits.imageSubobject f) CategoryTheory.Subobject.underlying.obj (CategoryTheory.Limits.kernelSubobject g)

The canonical morphism imageSubobject f ⟶ kernelSubobject g when f ≫ g = 0.

Equations
Instances For

    imageToKernel for A --0--> B --g--> C, where g is a mono is itself an epi (i.e. the sequence is exact at B).

    Equations
    • =

    imageToKernel for A --f--> B --0--> C, where g is an epi is itself an epi (i.e. the sequence is exact at B).

    Equations
    • =

    The homology of a pair of morphisms f : A ⟶ B and g : B ⟶ C satisfying f ≫ g = 0 is the cokernel of the imageToKernel morphism for f and g.

    Equations
    Instances For

      The morphism from cycles to homology.

      Equations
      Instances For

        To construct a map out of homology, it suffices to construct a map out of the cycles which vanishes on boundaries.

        Equations
        Instances For

          To check two morphisms out of homology' f g w are equal, it suffices to check on cycles.

          The cokernel of the map Im f ⟶ Ker 0 is isomorphic to the cokernel of f.

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

            homology 0 0 _ is just the middle object.

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

              Given compatible commutative squares between a pair f g and a pair f' g' satisfying f ≫ g = 0 and f' ≫ g' = 0, the imageToKernel morphisms intertwine the induced map on kernels and the induced map on images.

              Given compatible commutative squares between a pair f g and a pair f' g' satisfying f ≫ g = 0 and f' ≫ g' = 0, we get a morphism on homology.

              Equations
              • One or more equations did not get rendered due to their size.
              Instances For
                theorem homology'.comp_right_eq_comp_left {V : Type u_2} [CategoryTheory.Category.{u_3, u_2} V] {A₁ : V} {B₁ : V} {C₁ : V} {A₂ : V} {B₂ : V} {C₂ : V} {A₃ : V} {B₃ : V} {C₃ : V} {f₁ : A₁ B₁} {g₁ : B₁ C₁} {f₂ : A₂ B₂} {g₂ : B₂ C₂} {f₃ : A₃ B₃} {g₃ : B₃ C₃} {α₁ : CategoryTheory.Arrow.mk f₁ CategoryTheory.Arrow.mk f₂} {β₁ : CategoryTheory.Arrow.mk g₁ CategoryTheory.Arrow.mk g₂} {α₂ : CategoryTheory.Arrow.mk f₂ CategoryTheory.Arrow.mk f₃} {β₂ : CategoryTheory.Arrow.mk g₂ CategoryTheory.Arrow.mk g₃} (p₁ : α₁.right = β₁.left) (p₂ : α₂.right = β₂.left) :

                Auxiliary lemma for homology computations.

                theorem homology'.map_comp_assoc {V : Type u} [CategoryTheory.Category.{v, u} V] [CategoryTheory.Limits.HasZeroMorphisms V] {A₁ : V} {B₁ : V} {C₁ : V} {f₁ : A₁ B₁} [CategoryTheory.Limits.HasImage f₁] {g₁ : B₁ C₁} [CategoryTheory.Limits.HasKernel g₁] (w₁ : CategoryTheory.CategoryStruct.comp f₁ g₁ = 0) {A₂ : V} {B₂ : V} {C₂ : V} {f₂ : A₂ B₂} [CategoryTheory.Limits.HasImage f₂] {g₂ : B₂ C₂} [CategoryTheory.Limits.HasKernel g₂] (w₂ : CategoryTheory.CategoryStruct.comp f₂ g₂ = 0) {A₃ : V} {B₃ : V} {C₃ : V} {f₃ : A₃ B₃} [CategoryTheory.Limits.HasImage f₃] {g₃ : B₃ C₃} [CategoryTheory.Limits.HasKernel g₃] (w₃ : CategoryTheory.CategoryStruct.comp f₃ g₃ = 0) (α₁ : CategoryTheory.Arrow.mk f₁ CategoryTheory.Arrow.mk f₂) [CategoryTheory.Limits.HasImageMap α₁] (β₁ : CategoryTheory.Arrow.mk g₁ CategoryTheory.Arrow.mk g₂) (α₂ : CategoryTheory.Arrow.mk f₂ CategoryTheory.Arrow.mk f₃) [CategoryTheory.Limits.HasImageMap α₂] (β₂ : CategoryTheory.Arrow.mk g₂ CategoryTheory.Arrow.mk g₃) [CategoryTheory.Limits.HasCokernel (imageToKernel f₁ g₁ w₁)] [CategoryTheory.Limits.HasCokernel (imageToKernel f₂ g₂ w₂)] [CategoryTheory.Limits.HasCokernel (imageToKernel f₃ g₃ w₃)] (p₁ : α₁.right = β₁.left) (p₂ : α₂.right = β₂.left) {Z : V} (h : homology' f₃ g₃ w₃ Z) :
                theorem homology'.map_comp {V : Type u} [CategoryTheory.Category.{v, u} V] [CategoryTheory.Limits.HasZeroMorphisms V] {A₁ : V} {B₁ : V} {C₁ : V} {f₁ : A₁ B₁} [CategoryTheory.Limits.HasImage f₁] {g₁ : B₁ C₁} [CategoryTheory.Limits.HasKernel g₁] (w₁ : CategoryTheory.CategoryStruct.comp f₁ g₁ = 0) {A₂ : V} {B₂ : V} {C₂ : V} {f₂ : A₂ B₂} [CategoryTheory.Limits.HasImage f₂] {g₂ : B₂ C₂} [CategoryTheory.Limits.HasKernel g₂] (w₂ : CategoryTheory.CategoryStruct.comp f₂ g₂ = 0) {A₃ : V} {B₃ : V} {C₃ : V} {f₃ : A₃ B₃} [CategoryTheory.Limits.HasImage f₃] {g₃ : B₃ C₃} [CategoryTheory.Limits.HasKernel g₃] (w₃ : CategoryTheory.CategoryStruct.comp f₃ g₃ = 0) (α₁ : CategoryTheory.Arrow.mk f₁ CategoryTheory.Arrow.mk f₂) [CategoryTheory.Limits.HasImageMap α₁] (β₁ : CategoryTheory.Arrow.mk g₁ CategoryTheory.Arrow.mk g₂) (α₂ : CategoryTheory.Arrow.mk f₂ CategoryTheory.Arrow.mk f₃) [CategoryTheory.Limits.HasImageMap α₂] (β₂ : CategoryTheory.Arrow.mk g₂ CategoryTheory.Arrow.mk g₃) [CategoryTheory.Limits.HasCokernel (imageToKernel f₁ g₁ w₁)] [CategoryTheory.Limits.HasCokernel (imageToKernel f₂ g₂ w₂)] [CategoryTheory.Limits.HasCokernel (imageToKernel f₃ g₃ w₃)] (p₁ : α₁.right = β₁.left) (p₂ : α₂.right = β₂.left) :
                CategoryTheory.CategoryStruct.comp (homology'.map w₁ w₂ α₁ β₁ p₁) (homology'.map w₂ w₃ α₂ β₂ p₂) = homology'.map w₁ w₃ (CategoryTheory.CategoryStruct.comp α₁ α₂) (CategoryTheory.CategoryStruct.comp β₁ β₂)
                def homology'.mapIso {V : Type u} [CategoryTheory.Category.{v, u} V] [CategoryTheory.Limits.HasZeroMorphisms V] {A₁ : V} {B₁ : V} {C₁ : V} {f₁ : A₁ B₁} [CategoryTheory.Limits.HasImage f₁] {g₁ : B₁ C₁} [CategoryTheory.Limits.HasKernel g₁] (w₁ : CategoryTheory.CategoryStruct.comp f₁ g₁ = 0) {A₂ : V} {B₂ : V} {C₂ : V} {f₂ : A₂ B₂} [CategoryTheory.Limits.HasImage f₂] {g₂ : B₂ C₂} [CategoryTheory.Limits.HasKernel g₂] (w₂ : CategoryTheory.CategoryStruct.comp f₂ g₂ = 0) [CategoryTheory.Limits.HasCokernel (imageToKernel f₁ g₁ w₁)] [CategoryTheory.Limits.HasCokernel (imageToKernel f₂ g₂ w₂)] (α : CategoryTheory.Arrow.mk f₁ CategoryTheory.Arrow.mk f₂) (β : CategoryTheory.Arrow.mk g₁ CategoryTheory.Arrow.mk g₂) (p : α.hom.right = β.hom.left) :
                homology' f₁ g₁ w₁ homology' f₂ g₂ w₂

                An isomorphism between two three-term complexes induces an isomorphism on homology.

                Equations
                Instances For

                  homology f g w ≅ homology f' g' w' if f = f' and g = g'. (Note the objects are not changing here.)

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

                    We provide a variant imageToKernel' : image f ⟶ kernel g, and use this to give alternative formulas for homology f g w.

                    While imageToKernel f g w provides a morphism imageSubobject f ⟶ kernelSubobject g in terms of the subobject API, this variant provides a morphism image f ⟶ kernel g, which is sometimes more convenient.

                    Equations
                    Instances For

                      homology' f g w can be computed as the cokernel of imageToKernel' f g w.

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

                        homology f g w can be computed as the cokernel of kernel.lift g f w.

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