Documentation

Mathlib.Algebra.Homology.ShortComplex.Exact

Exact short complexes #

When S : ShortComplex C, this file defines a structure S.Exact which expresses the exactness of S, i.e. there exists a homology data h : S.HomologyData such that h.left.H is zero. When [S.HasHomology], it is equivalent to the assertion IsZero S.homology.

Almost by construction, this notion of exactness is self dual, see Exact.op and Exact.unop.

The assertion that the short complex S : ShortComplex C is exact.

  • condition : ∃ (h : S.HomologyData), CategoryTheory.Limits.IsZero h.left.H

    the condition that there exists an homology data whose left.H field is zero

theorem CategoryTheory.ShortComplex.exact_iff_i_p_zero {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Limits.HasZeroMorphisms C] (S : CategoryTheory.ShortComplex C) [S.HasHomology] (h₁ : S.LeftHomologyData) (h₂ : S.RightHomologyData) :
S.Exact CategoryTheory.CategoryStruct.comp h₁.i h₂.p = 0
theorem CategoryTheory.ShortComplex.RightHomologyData.exact_map_iff {C : Type u_1} {D : Type u_2} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Category.{u_4, u_2} D] [CategoryTheory.Limits.HasZeroMorphisms C] [CategoryTheory.Limits.HasZeroMorphisms D] {S : CategoryTheory.ShortComplex C} (h : S.RightHomologyData) (F : CategoryTheory.Functor C D) [F.PreservesZeroMorphisms] [h.IsPreservedBy F] [(S.map F).HasHomology] :
(S.map F).Exact CategoryTheory.Limits.IsZero (F.obj h.H)
theorem CategoryTheory.ShortComplex.Exact.map_of_preservesLeftHomologyOf {C : Type u_1} {D : Type u_2} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Category.{u_4, u_2} D] [CategoryTheory.Limits.HasZeroMorphisms C] [CategoryTheory.Limits.HasZeroMorphisms D] {S : CategoryTheory.ShortComplex C} (h : S.Exact) (F : CategoryTheory.Functor C D) [F.PreservesZeroMorphisms] [F.PreservesLeftHomologyOf S] [(S.map F).HasHomology] :
(S.map F).Exact
theorem CategoryTheory.ShortComplex.Exact.map_of_preservesRightHomologyOf {C : Type u_1} {D : Type u_2} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Category.{u_4, u_2} D] [CategoryTheory.Limits.HasZeroMorphisms C] [CategoryTheory.Limits.HasZeroMorphisms D] {S : CategoryTheory.ShortComplex C} (h : S.Exact) (F : CategoryTheory.Functor C D) [F.PreservesZeroMorphisms] [F.PreservesRightHomologyOf S] [(S.map F).HasHomology] :
(S.map F).Exact
theorem CategoryTheory.ShortComplex.Exact.map {C : Type u_1} {D : Type u_2} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Category.{u_4, u_2} D] [CategoryTheory.Limits.HasZeroMorphisms C] [CategoryTheory.Limits.HasZeroMorphisms D] {S : CategoryTheory.ShortComplex C} (h : S.Exact) (F : CategoryTheory.Functor C D) [F.PreservesZeroMorphisms] [F.PreservesLeftHomologyOf S] [F.PreservesRightHomologyOf S] :
(S.map F).Exact
theorem CategoryTheory.ShortComplex.exact_map_iff_of_faithful {C : Type u_1} {D : Type u_2} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Category.{u_4, u_2} D] [CategoryTheory.Limits.HasZeroMorphisms C] [CategoryTheory.Limits.HasZeroMorphisms D] (S : CategoryTheory.ShortComplex C) [S.HasHomology] (F : CategoryTheory.Functor C D) [F.PreservesZeroMorphisms] [F.PreservesLeftHomologyOf S] [F.PreservesRightHomologyOf S] [F.Faithful] :
(S.map F).Exact S.Exact

Given an exact short complex S and a limit kernel fork kf for S.g, this is the left homology data for S with K := kf.pt and H := 0.

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

Given an exact short complex S and a colimit cokernel cofork cc for S.f, this is the right homology data for S with Q := cc.pt and H := 0.

Equations
  • One or more equations did not get rendered due to their size.
theorem CategoryTheory.ShortComplex.QuasiIso.exact_iff {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Preadditive C] {S₁ S₂ : CategoryTheory.ShortComplex C} (φ : S₁ S₂) [S₁.HasHomology] [S₂.HasHomology] [CategoryTheory.ShortComplex.QuasiIso φ] :
S₁.Exact S₂.Exact

A splitting for a short complex S consists of the data of a retraction r : X₂ ⟶ X₁ of S.f and section s : X₃ ⟶ X₂ of S.g which satisfy r ≫ S.f + S.g ≫ s = 𝟙 _

Given a splitting of a short complex S, this shows that S.f is a split monomorphism.

Equations
  • s.splitMono_f = { retraction := s.r, id := }

Given a splitting of a short complex S, this shows that S.g is a split epimorphism.

Equations
  • s.splitEpi_g = { section_ := s.s, id := }

The left homology data on a short complex equipped with a splitting.

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

The right homology data on a short complex equipped with a splitting.

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

The homology data on a short complex equipped with a splitting.

Equations
  • s.homologyData = { left := s.leftHomologyData, right := s.rightHomologyData, iso := CategoryTheory.Iso.refl 0, comm := }

A short complex equipped with a splitting is exact.

If a short complex S is equipped with a splitting, then S.X₁ is the kernel of S.g.

Equations
  • s.fIsKernel = s.homologyData.left.hi

If a short complex S is equipped with a splitting, then S.X₃ is the cokernel of S.f.

Equations
  • s.gIsCokernel = s.homologyData.right.hp

If a short complex S has a splitting and F is an additive functor, then S.map F also has a splitting.

Equations
  • s.map F = { r := F.map s.r, s := F.map s.s, f_r := , s_g := , id := }
def CategoryTheory.ShortComplex.Splitting.ofIso {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Preadditive C] {S₁ S₂ : CategoryTheory.ShortComplex C} (s : S₁.Splitting) (e : S₁ S₂) :
S₂.Splitting

A splitting on a short complex induces splittings on isomorphic short complexes.

Equations
  • One or more equations did not get rendered due to their size.
noncomputable def CategoryTheory.ShortComplex.Splitting.ofHasBinaryBiproduct {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Preadditive C] (X₁ X₂ : C) [CategoryTheory.Limits.HasBinaryBiproduct X₁ X₂] :
(CategoryTheory.ShortComplex.mk CategoryTheory.Limits.biprod.inl CategoryTheory.Limits.biprod.snd ).Splitting

The obvious splitting of the short complex X₁ ⟶ X₁ ⊞ X₂ ⟶ X₂.

Equations

The obvious splitting of a short complex when S.X₁ is zero and S.g is an isomorphism.

Equations

The obvious splitting of a short complex when S.f is an isomorphism and S.X₃ is zero.

Equations

The splitting of the short complex S.op deduced from a splitting of S.

Equations
  • h.op = { r := h.s.op, s := h.r.op, f_r := , s_g := , id := }

The splitting of the short complex S.unop deduced from a splitting of S.

Equations
  • h.unop = { r := h.s.unop, s := h.r.unop, f_r := , s_g := , id := }

The isomorphism S.X₂ ≅ S.X₁ ⊞ S.X₃ induced by a splitting of the short complex S.

Equations

In a balanced category, if a short complex S is exact and S.f is a mono, then S.X₁ is the kernel of S.g.

Equations

In a balanced category, if a short complex S is exact and S.g is an epi, then S.X₃ is the cokernel of S.g.

Equations

If a short complex S in a balanced category is exact and such that S.f is a mono, then a morphism k : A ⟶ S.X₂ such that k ≫ S.g = 0 lifts to a morphism A ⟶ S.X₁.

Equations

If a short complex S in a balanced category is exact and such that S.g is an epi, then a morphism k : S.X₂ ⟶ A such that S.f ≫ k = 0 descends to a morphism S.X₃ ⟶ A.

Equations
theorem CategoryTheory.ShortComplex.quasiIso_iff_of_zeros {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Abelian C] {S₁ S₂ : CategoryTheory.ShortComplex C} (φ : S₁ S₂) (hf₁ : S₁.f = 0) (hg₁ : S₁.g = 0) (hf₂ : S₂.f = 0) :

Given a morphism of short complexes φ : S₁ ⟶ S₂ in an abelian category, if S₁.f and S₁.g are zero (e.g. when S₁ is of the form 0 ⟶ S₁.X₂ ⟶ 0) and S₂.f = 0 (e.g when S₂ is of the form 0 ⟶ S₂.X₂ ⟶ S₂.X₃), then φ is a quasi-isomorphism iff the obvious short complex S₁.X₂ ⟶ S₂.X₂ ⟶ S₂.X₃ is exact and φ.τ₂ is a mono).

theorem CategoryTheory.ShortComplex.quasiIso_iff_of_zeros' {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Abelian C] {S₁ S₂ : CategoryTheory.ShortComplex C} (φ : S₁ S₂) (hg₁ : S₁.g = 0) (hf₂ : S₂.f = 0) (hg₂ : S₂.g = 0) :

Given a morphism of short complexes φ : S₁ ⟶ S₂ in an abelian category, if S₁.g = 0 (e.g when S₁ is of the form S₁.X₁ ⟶ S₁.X₂ ⟶ 0) and both S₂.f and S₂.g are zero (e.g when S₂ is of the form 0 ⟶ S₂.X₂ ⟶ 0), then φ is a quasi-isomorphism iff the obvious short complex S₁.X₂ ⟶ S₁.X₂ ⟶ S₂.X₂ is exact and φ.τ₂ is an epi).

If S is an exact short complex and f : S.X₂ ⟶ J is a morphism to an injective object J such that S.f ≫ f = 0, this is a morphism φ : S.X₃ ⟶ J such that S.g ≫ φ = f.

Equations

If S is an exact short complex and f : P ⟶ S.X₂ is a morphism from a projective object P such that f ≫ S.g = 0, this is a morphism φ : P ⟶ S.X₁ such that φ ≫ S.f = f.

Equations
@[deprecated CategoryTheory.ShortComplex.Exact.liftFromProjective]

Alias of CategoryTheory.ShortComplex.Exact.liftFromProjective.


If S is an exact short complex and f : P ⟶ S.X₂ is a morphism from a projective object P such that f ≫ S.g = 0, this is a morphism φ : P ⟶ S.X₁ such that φ ≫ S.f = f.

Equations
@[deprecated CategoryTheory.ShortComplex.Exact.liftFromProjective_comp]

Alias of CategoryTheory.ShortComplex.Exact.liftFromProjective_comp.

@[deprecated CategoryTheory.ShortComplex.Exact.descToInjective]

Alias of CategoryTheory.ShortComplex.Exact.descToInjective.


If S is an exact short complex and f : S.X₂ ⟶ J is a morphism to an injective object J such that S.f ≫ f = 0, this is a morphism φ : S.X₃ ⟶ J such that S.g ≫ φ = f.

Equations
@[deprecated CategoryTheory.ShortComplex.Exact.comp_descToInjective]

Alias of CategoryTheory.ShortComplex.Exact.comp_descToInjective.

This is the splitting of a short complex S in a balanced category induced by a section of the morphism S.g : S.X₂ ⟶ S.X₃

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

This is the splitting of a short complex S in a balanced category induced by a retraction of the morphism S.f : S.X₁ ⟶ S.X₂

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