Documentation

Mathlib.Algebra.Homology.ShortComplex.ModuleCat

Homology and exactness of short complexes of modules #

In this file, the homology of a short complex S of abelian groups is identified with the quotient of LinearMap.ker S.g by the image of the morphism S.moduleCatToCycles : S.X₁ →ₗ[R] LinearMap.ker S.g induced by S.f.

def CategoryTheory.ShortComplex.moduleCatMk {R : Type u} [Ring R] {X₁ X₂ X₃ : Type v} [AddCommGroup X₁] [AddCommGroup X₂] [AddCommGroup X₃] [Module R X₁] [Module R X₂] [Module R X₃] (f : X₁ →ₗ[R] X₂) (g : X₂ →ₗ[R] X₃) (hfg : g ∘ₗ f = 0) :

Constructor for short complexes in ModuleCat.{v} R taking as inputs linear maps f and g and the vanishing of their composition.

Equations
Instances For
    @[simp]
    theorem CategoryTheory.ShortComplex.moduleCatMk_X₁_carrier {R : Type u} [Ring R] {X₁ X₂ X₃ : Type v} [AddCommGroup X₁] [AddCommGroup X₂] [AddCommGroup X₃] [Module R X₁] [Module R X₂] [Module R X₃] (f : X₁ →ₗ[R] X₂) (g : X₂ →ₗ[R] X₃) (hfg : g ∘ₗ f = 0) :
    (moduleCatMk f g hfg).X₁ = X₁
    @[simp]
    theorem CategoryTheory.ShortComplex.moduleCatMk_X₃_carrier {R : Type u} [Ring R] {X₁ X₂ X₃ : Type v} [AddCommGroup X₁] [AddCommGroup X₂] [AddCommGroup X₃] [Module R X₁] [Module R X₂] [Module R X₃] (f : X₁ →ₗ[R] X₂) (g : X₂ →ₗ[R] X₃) (hfg : g ∘ₗ f = 0) :
    (moduleCatMk f g hfg).X₃ = X₃
    @[simp]
    theorem CategoryTheory.ShortComplex.moduleCatMk_g {R : Type u} [Ring R] {X₁ X₂ X₃ : Type v} [AddCommGroup X₁] [AddCommGroup X₂] [AddCommGroup X₃] [Module R X₁] [Module R X₂] [Module R X₃] (f : X₁ →ₗ[R] X₂) (g : X₂ →ₗ[R] X₃) (hfg : g ∘ₗ f = 0) :
    @[simp]
    theorem CategoryTheory.ShortComplex.moduleCatMk_f {R : Type u} [Ring R] {X₁ X₂ X₃ : Type v} [AddCommGroup X₁] [AddCommGroup X₂] [AddCommGroup X₃] [Module R X₁] [Module R X₂] [Module R X₃] (f : X₁ →ₗ[R] X₂) (g : X₂ →ₗ[R] X₃) (hfg : g ∘ₗ f = 0) :
    @[simp]
    theorem CategoryTheory.ShortComplex.moduleCatMk_X₂_carrier {R : Type u} [Ring R] {X₁ X₂ X₃ : Type v} [AddCommGroup X₁] [AddCommGroup X₂] [AddCommGroup X₃] [Module R X₁] [Module R X₂] [Module R X₃] (f : X₁ →ₗ[R] X₂) (g : X₂ →ₗ[R] X₃) (hfg : g ∘ₗ f = 0) :
    (moduleCatMk f g hfg).X₂ = X₂
    theorem CategoryTheory.ShortComplex.moduleCat_exact_iff {R : Type u} [Ring R] (S : ShortComplex (ModuleCat R)) :
    S.Exact ∀ (x₂ : S.X₂), (ConcreteCategory.hom S.g) x₂ = 0∃ (x₁ : S.X₁), (ConcreteCategory.hom S.f) x₁ = x₂
    def CategoryTheory.ShortComplex.moduleCatMkOfKerLERange {R : Type u} [Ring R] {X₁ X₂ X₃ : ModuleCat R} (f : X₁ X₂) (g : X₂ X₃) (hfg : (ModuleCat.Hom.hom f).range (ModuleCat.Hom.hom g).ker) :

    Constructor for short complexes in ModuleCat.{v} R taking as inputs morphisms f and g and the assumption LinearMap.range f ≤ LinearMap.ker g.

    Equations
    Instances For
      @[simp]
      theorem CategoryTheory.ShortComplex.moduleCatMkOfKerLERange_g {R : Type u} [Ring R] {X₁ X₂ X₃ : ModuleCat R} (f : X₁ X₂) (g : X₂ X₃) (hfg : (ModuleCat.Hom.hom f).range (ModuleCat.Hom.hom g).ker) :
      @[simp]
      theorem CategoryTheory.ShortComplex.moduleCatMkOfKerLERange_X₂ {R : Type u} [Ring R] {X₁ X₂ X₃ : ModuleCat R} (f : X₁ X₂) (g : X₂ X₃) (hfg : (ModuleCat.Hom.hom f).range (ModuleCat.Hom.hom g).ker) :
      @[simp]
      theorem CategoryTheory.ShortComplex.moduleCatMkOfKerLERange_f {R : Type u} [Ring R] {X₁ X₂ X₃ : ModuleCat R} (f : X₁ X₂) (g : X₂ X₃) (hfg : (ModuleCat.Hom.hom f).range (ModuleCat.Hom.hom g).ker) :
      @[simp]
      theorem CategoryTheory.ShortComplex.moduleCatMkOfKerLERange_X₁ {R : Type u} [Ring R] {X₁ X₂ X₃ : ModuleCat R} (f : X₁ X₂) (g : X₂ X₃) (hfg : (ModuleCat.Hom.hom f).range (ModuleCat.Hom.hom g).ker) :
      @[simp]
      theorem CategoryTheory.ShortComplex.moduleCatMkOfKerLERange_X₃ {R : Type u} [Ring R] {X₁ X₂ X₃ : ModuleCat R} (f : X₁ X₂) (g : X₂ X₃) (hfg : (ModuleCat.Hom.hom f).range (ModuleCat.Hom.hom g).ker) :
      theorem CategoryTheory.ShortComplex.Exact.moduleCat_of_range_eq_ker {R : Type u} [Ring R] {X₁ X₂ X₃ : ModuleCat R} (f : X₁ X₂) (g : X₂ X₃) (hfg : (ModuleCat.Hom.hom f).range = (ModuleCat.Hom.hom g).ker) :
      @[reducible, inline]

      The canonical linear map S.X₁ →ₗ[R] LinearMap.ker S.g induced by S.f.

      Equations
      Instances For

        The explicit left homology data of a short complex of modules that is given by a kernel and a quotient given by the LinearMap API. The projections to K and H are not simp lemmas because the generic lemmas about LeftHomologyData are more useful here.

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

          Given a short complex S of modules, this is the isomorphism between the abstract S.cycles of the homology API and the more concrete description as LinearMap.ker S.g.

          Equations
          Instances For

            Given a short complex S of modules, this is the isomorphism between the abstract S.opcycles of the homology API and the more concrete description as S.X₂ ⧸ LinearMap.range S.f.hom.

            Equations
            Instances For

              Given a short complex S of modules, this is the isomorphism between the abstract S.homology of the homology API and the more explicit quotient of LinearMap.ker S.g by the image of S.moduleCatToCycles : S.X₁ →ₗ[R] LinearMap.ker S.g.

              Equations
              Instances For
                @[reducible, inline]
                abbrev LinearMap.shortComplexKer {R : Type u} [Ring R] {M : Type v} [AddCommGroup M] [Module R M] {N : Type v} [AddCommGroup N] [Module R N] (f : M →ₗ[R] N) :

                Given a linear map f : M → N, we can obtain a short complex 0 → ker(f) → M → N.

                Equations
                Instances For
                  @[reducible, inline]
                  abbrev ModuleCat.shortComplexOfCompEqZero {R : Type u} [Ring R] {M : Type v} [AddCommGroup M] [Module R M] {N : Type v} [AddCommGroup N] [Module R N] {L : Type v} [AddCommGroup L] [Module R L] (f : M →ₗ[R] N) (g : N →ₗ[R] L) (eq0 : g ∘ₗ f = 0) :

                  The short complex in ModuleCat obtained from two linear map with composition equal to zero.

                  Equations
                  Instances For
                    @[reducible, inline]
                    abbrev ModuleCat.shortComplexOfConj {R : Type u} [Ring R] {M : Type v} [AddCommGroup M] [Module R M] {N : Type v} [AddCommGroup N] [Module R N] {L : Type v} [AddCommGroup L] [Module R L] {M' : Type u_1} {N' : Type u_2} {L' : Type u_3} [AddCommGroup M'] [AddCommGroup N'] [AddCommGroup L'] [Module R M'] [Module R N'] [Module R L'] (eM : M ≃ₗ[R] M') (eN : N ≃ₗ[R] N') (eL : L ≃ₗ[R] L') (f : M' →ₗ[R] N') (g : N' →ₗ[R] L') (eq0 : g ∘ₗ f = 0) :

                    Suppose that f and g are linear maps that compose to zero, and that eM, eN, and eL indicated in the diagram below are linear equivalences to modules that all belong to the same universe. Then this is the short complex in ModuleCat given by the bottom row in the diagram. M --f--> N --g--> L | | | eM eN eL | | | v v v M'-----> N'-----> L' This complex is exact when we have Function.Exact f g, see ModuleCat.shortComplexOfConj_exact.

                    Equations
                    Instances For
                      theorem ModuleCat.shortComplexOfConj_exact {R : Type u} [Ring R] {M : Type v} [AddCommGroup M] [Module R M] {N : Type v} [AddCommGroup N] [Module R N] {L : Type v} [AddCommGroup L] [Module R L] {M' : Type u_1} {N' : Type u_2} {L' : Type u_3} [AddCommGroup M'] [AddCommGroup N'] [AddCommGroup L'] [Module R M'] [Module R N'] [Module R L'] (eM : M ≃ₗ[R] M') (eN : N ≃ₗ[R] N') (eL : L ≃ₗ[R] L') (f : M' →ₗ[R] N') (g : N' →ₗ[R] L') (exact : Function.Exact f g) :
                      (shortComplexOfConj eM eN eL f g ).Exact
                      theorem ModuleCat.shortComplexOfConj_shortExact {R : Type u} [Ring R] {M : Type v} [AddCommGroup M] [Module R M] {N : Type v} [AddCommGroup N] [Module R N] {L : Type v} [AddCommGroup L] [Module R L] {M' : Type u_1} {N' : Type u_2} {L' : Type u_3} [AddCommGroup M'] [AddCommGroup N'] [AddCommGroup L'] [Module R M'] [Module R N'] [Module R L'] (eM : M ≃ₗ[R] M') (eN : N ≃ₗ[R] N') (eL : L ≃ₗ[R] L') (f : M' →ₗ[R] N') (g : N' →ₗ[R] L') (exact : Function.Exact f g) (inj : Function.Injective f) (surj : Function.Surjective g) :
                      (shortComplexOfConj eM eN eL f g ).ShortExact