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
Instances For
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.
Instances For
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.
Instances For
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 = 𝟙 _
- r : S.X₂ ⟶ S.X₁
a retraction of
S.f
- s : S.X₃ ⟶ S.X₂
a section of
S.g
- f_r : CategoryTheory.CategoryStruct.comp S.f self.r = CategoryTheory.CategoryStruct.id S.X₁
the condition that
r
is a retraction ofS.f
- s_g : CategoryTheory.CategoryStruct.comp self.s S.g = CategoryTheory.CategoryStruct.id S.X₃
the condition that
s
is a section ofS.g
- id : CategoryTheory.CategoryStruct.comp self.r S.f + CategoryTheory.CategoryStruct.comp S.g self.s = CategoryTheory.CategoryStruct.id S.X₂
the compatibility between the given section and retraction
Instances For
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 := ⋯ }
Instances For
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 := ⋯ }
Instances For
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.
Instances For
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.
Instances For
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 := ⋯ }
Instances For
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
Instances For
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
Instances For
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 := ⋯ }
Instances For
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.
Instances For
The obvious splitting of the short complex X₁ ⟶ X₁ ⊞ X₂ ⟶ X₂
.
Equations
- CategoryTheory.ShortComplex.Splitting.ofHasBinaryBiproduct X₁ X₂ = { r := CategoryTheory.Limits.biprod.fst, s := CategoryTheory.Limits.biprod.inr, f_r := ⋯, s_g := ⋯, id := ⋯ }
Instances For
The obvious splitting of a short complex when S.X₁
is zero and S.g
is an isomorphism.
Equations
- CategoryTheory.ShortComplex.Splitting.ofIsZeroOfIsIso S hf hg = { r := 0, s := CategoryTheory.inv S.g, f_r := ⋯, s_g := ⋯, id := ⋯ }
Instances For
The obvious splitting of a short complex when S.f
is an isomorphism and S.X₃
is zero.
Equations
- CategoryTheory.ShortComplex.Splitting.ofIsIsoOfIsZero S hf hg = { r := CategoryTheory.inv S.f, s := 0, f_r := ⋯, s_g := ⋯, id := ⋯ }
Instances For
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 := ⋯ }
Instances For
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 := ⋯ }
Instances For
The isomorphism S.X₂ ≅ S.X₁ ⊞ S.X₃
induced by a splitting of the short complex S
.
Equations
- h.isoBinaryBiproduct = { hom := CategoryTheory.Limits.biprod.lift h.r S.g, inv := CategoryTheory.Limits.biprod.desc S.f h.s, hom_inv_id := ⋯, inv_hom_id := ⋯ }
Instances For
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
- hS.fIsKernel = S.cyclesIsKernel.ofIsoLimit (CategoryTheory.Limits.Fork.ext (CategoryTheory.asIso S.toCycles).symm ⋯)
Instances For
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
- hS.gIsCokernel = S.opcyclesIsCokernel.ofIsoColimit (CategoryTheory.Limits.Cofork.ext (CategoryTheory.asIso S.fromOpcycles) ⋯)
Instances For
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
- hS.lift k hk = hS.fIsKernel.lift (CategoryTheory.Limits.KernelFork.ofι k hk)
Instances For
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
- hS.desc k hk = hS.gIsCokernel.desc (CategoryTheory.Limits.CokernelCofork.ofπ k hk)
Instances For
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).
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
- hS.descToInjective f hf = CategoryTheory.Injective.factorThru (S.descOpcycles f hf) S.fromOpcycles
Instances For
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
- hS.liftFromProjective f hf = CategoryTheory.Projective.factorThru (S.liftCycles f hf) S.toCycles
Instances For
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
.
Instances For
Alias of CategoryTheory.ShortComplex.Exact.liftFromProjective_comp
.
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
.
Instances For
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.
Instances For
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.