Left Homology of short complexes #
Given a short complex S : ShortComplex C, which consists of two composable
maps f : X₁ ⟶ X₂ and g : X₂ ⟶ X₃ such that f ≫ g = 0, we shall define
here the "left homology" S.leftHomology of S. For this, we introduce the
notion of "left homology data". Such an h : S.LeftHomologyData consists of the
data of morphisms i : K ⟶ X₂ and π : K ⟶ H such that i identifies
K with the kernel of g : X₂ ⟶ X₃, and that π identifies H with the cokernel
of the induced map f' : X₁ ⟶ K.
When such a S.LeftHomologyData exists, we shall say that [S.HasLeftHomology]
and we define S.leftHomology to be the H field of a chosen left homology data.
Similarly, we define S.cycles to be the K field.
The dual notion is defined in RightHomologyData.lean. In Homology.lean,
when S has two compatible left and right homology data (i.e. they give
the same H up to a canonical isomorphism), we shall define [S.HasHomology]
and S.homology.
A left homology data for a short complex S consists of morphisms i : K ⟶ S.X₂ and
π : K ⟶ H such that i identifies K to the kernel of g : S.X₂ ⟶ S.X₃,
and that π identifies H to the cokernel of the induced map f' : S.X₁ ⟶ K
- K : C
a choice of kernel of
S.g : S.X₂ ⟶ S.X₃ - H : C
the inclusion of cycles in
S.X₂the projection from cycles to the (left) homology
the kernel condition for
i- hi : Limits.IsLimit (Limits.KernelFork.ofι self.i ⋯)
the cokernel condition for
π- hπ : Limits.IsColimit (Limits.CokernelCofork.ofπ self.π ⋯)
Instances For
The chosen kernels and cokernels of the limits API give a LeftHomologyData
Equations
- One or more equations did not get rendered due to their size.
Instances For
Any morphism k : A ⟶ S.X₂ that is a cycle (i.e. k ≫ S.g = 0) lifts
to a morphism A ⟶ K
Equations
- h.liftK k hk = h.hi.lift (CategoryTheory.Limits.KernelFork.ofι k hk)
Instances For
The (left) homology class A ⟶ H attached to a cycle k : A ⟶ S.X₂
Equations
- h.liftH k hk = CategoryTheory.CategoryStruct.comp (h.liftK k hk) h.π
Instances For
Given h : LeftHomologyData S, this is morphism S.X₁ ⟶ h.K induced
by S.f : S.X₁ ⟶ S.X₂ and the fact that h.K is a kernel of S.g : S.X₂ ⟶ S.X₃.
Instances For
For h : S.LeftHomologyData, this is a restatement of h.hπ, saying that
π : h.K ⟶ h.H is a cokernel of h.f' : S.X₁ ⟶ h.K.
Instances For
The morphism H ⟶ A induced by a morphism k : K ⟶ A such that f' ≫ k = 0
Equations
- h.descH k hk = h.hπ.desc (CategoryTheory.Limits.CokernelCofork.ofπ k hk)
Instances For
When the second map S.g is zero, this is the left homology data on S given
by any colimit cokernel cofork of S.f
Equations
- One or more equations did not get rendered due to their size.
Instances For
When the second map S.g is zero, this is the left homology data on S given by
the chosen cokernel S.f
Equations
- One or more equations did not get rendered due to their size.
Instances For
When the first map S.f is zero, this is the left homology data on S given
by any limit kernel fork of S.g
Equations
- One or more equations did not get rendered due to their size.
Instances For
When the first map S.f is zero, this is the left homology data on S given
by the chosen kernel S.g
Equations
- One or more equations did not get rendered due to their size.
Instances For
When both S.f and S.g are zero, the middle object S.X₂ gives a left homology data on S
Equations
- One or more equations did not get rendered due to their size.
Instances For
Given a left homology data h of a short complex S, we can construct another left homology
data by choosing another kernel and cokernel that are isomorphic to the ones in h.
Equations
- One or more equations did not get rendered due to their size.
Instances For
A short complex S has left homology when there exists a S.LeftHomologyData
- condition : Nonempty S.LeftHomologyData
Instances
A chosen S.LeftHomologyData for a short complex S that has left homology
Equations
- S.leftHomologyData = ⋯.some
Instances For
Given left homology data h₁ and h₂ for two short complexes S₁ and S₂,
a LeftHomologyMapData for a morphism φ : S₁ ⟶ S₂
consists of a description of the induced morphisms on the K (cycles)
and H (left homology) fields of h₁ and h₂.
the induced map on cycles
the induced map on left homology
commutation with
icommutation with
f'commutation with
π
Instances For
The left homology map data associated to the zero morphism between two short complexes.
Equations
- CategoryTheory.ShortComplex.LeftHomologyMapData.zero h₁ h₂ = { φK := 0, φH := 0, commi := ⋯, commf' := ⋯, commπ := ⋯ }
Instances For
The left homology map data associated to the identity morphism of a short complex.
Equations
- CategoryTheory.ShortComplex.LeftHomologyMapData.id h = { φK := CategoryTheory.CategoryStruct.id h.K, φH := CategoryTheory.CategoryStruct.id h.H, commi := ⋯, commf' := ⋯, commπ := ⋯ }
Instances For
The composition of left homology map data.
Equations
- ψ.comp ψ' = { φK := CategoryTheory.CategoryStruct.comp ψ.φK ψ'.φK, φH := CategoryTheory.CategoryStruct.comp ψ.φH ψ'.φH, commi := ⋯, commf' := ⋯, commπ := ⋯ }
Instances For
Equations
- One or more equations did not get rendered due to their size.
Equations
When S₁.f, S₁.g, S₂.f and S₂.g are all zero, the action on left homology of a
morphism φ : S₁ ⟶ S₂ is given by the action φ.τ₂ on the middle objects.
Equations
Instances For
When S₁.g and S₂.g are zero and we have chosen colimit cokernel coforks c₁ and c₂
for S₁.f and S₂.f respectively, the action on left homology of a morphism φ : S₁ ⟶ S₂ of
short complexes is given by the unique morphism f : c₁.pt ⟶ c₂.pt such that
φ.τ₂ ≫ c₂.π = c₁.π ≫ f.
Equations
- CategoryTheory.ShortComplex.LeftHomologyMapData.ofIsColimitCokernelCofork φ hg₁ c₁ hc₁ hg₂ c₂ hc₂ f comm = { φK := φ.τ₂, φH := f, commi := ⋯, commf' := ⋯, commπ := ⋯ }
Instances For
When S₁.f and S₂.f are zero and we have chosen limit kernel forks c₁ and c₂
for S₁.g and S₂.g respectively, the action on left homology of a morphism φ : S₁ ⟶ S₂ of
short complexes is given by the unique morphism f : c₁.pt ⟶ c₂.pt such that
c₁.ι ≫ φ.τ₂ = f ≫ c₂.ι.
Equations
- CategoryTheory.ShortComplex.LeftHomologyMapData.ofIsLimitKernelFork φ hf₁ c₁ hc₁ hf₂ c₂ hc₂ f comm = { φK := f, φH := f, commi := ⋯, commf' := ⋯, commπ := ⋯ }
Instances For
When both maps S.f and S.g of a short complex S are zero, this is the left homology map
data (for the identity of S) which relates the left homology data ofZeros and
ofIsColimitCokernelCofork.
Equations
- One or more equations did not get rendered due to their size.
Instances For
When both maps S.f and S.g of a short complex S are zero, this is the left homology map
data (for the identity of S) which relates the left homology data
LeftHomologyData.ofIsLimitKernelFork and ofZeros .
Equations
- One or more equations did not get rendered due to their size.
Instances For
The left homology of a short complex, given by the H field of a chosen left homology data.
Equations
Instances For
The cycles of a short complex, given by the K field of a chosen left homology data.
Equations
- S.cycles = S.leftHomologyData.K
Instances For
The "homology class" map S.cycles ⟶ S.leftHomology.
Equations
Instances For
The inclusion S.cycles ⟶ S.X₂.
Equations
- S.iCycles = S.leftHomologyData.i
Instances For
The "boundaries" map S.X₁ ⟶ S.cycles. (Note that in this homology API, we make no use
of the "image" of this morphism, which under some categorical assumptions would be a subobject
of S.X₂ contained in S.cycles.)
Equations
- S.toCycles = S.leftHomologyData.f'
Instances For
When S.g = 0, this is the canonical isomorphism S.cycles ≅ S.X₂ induced by S.iCycles.
Equations
- S.cyclesIsoX₂ hg = CategoryTheory.asIso S.iCycles
Instances For
When S.f = 0, this is the canonical isomorphism S.cycles ≅ S.leftHomology induced
by S.leftHomologyπ.
Equations
Instances For
The (unique) left homology map data associated to a morphism of short complexes that are both equipped with left homology data.
Equations
Instances For
Given a morphism φ : S₁ ⟶ S₂ of short complexes and left homology data h₁ and h₂
for S₁ and S₂ respectively, this is the induced left homology map h₁.H ⟶ h₁.H.
Equations
Instances For
Given a morphism φ : S₁ ⟶ S₂ of short complexes and left homology data h₁ and h₂
for S₁ and S₂ respectively, this is the induced morphism h₁.K ⟶ h₁.K on cycles.
Equations
Instances For
The (left) homology map S₁.leftHomology ⟶ S₂.leftHomology induced by a morphism
S₁ ⟶ S₂ of short complexes.
Equations
Instances For
The morphism S₁.cycles ⟶ S₂.cycles induced by a morphism S₁ ⟶ S₂ of short complexes.
Equations
Instances For
An isomorphism of short complexes S₁ ≅ S₂ induces an isomorphism on the H fields
of left homology data of S₁ and S₂.
Equations
- One or more equations did not get rendered due to their size.
Instances For
An isomorphism of short complexes S₁ ≅ S₂ induces an isomorphism on the K fields
of left homology data of S₁ and S₂.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The isomorphism S₁.leftHomology ≅ S₂.leftHomology induced by an isomorphism of
short complexes S₁ ≅ S₂.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The isomorphism S₁.cycles ≅ S₂.cycles induced by an isomorphism
of short complexes S₁ ≅ S₂.
Equations
- CategoryTheory.ShortComplex.cyclesMapIso e = { hom := CategoryTheory.ShortComplex.cyclesMap e.hom, inv := CategoryTheory.ShortComplex.cyclesMap e.inv, hom_inv_id := ⋯, inv_hom_id := ⋯ }
Instances For
The isomorphism S.leftHomology ≅ h.H induced by a left homology data h for a
short complex S.
Equations
Instances For
The isomorphism S.cycles ≅ h.K induced by a left homology data h for a
short complex S.
Equations
Instances For
The left homology functor ShortComplex C ⥤ C, where the left homology of a
short complex S is understood as a cokernel of the obvious map S.toCycles : S.X₁ ⟶ S.cycles
where S.cycles is a kernel of S.g : S.X₂ ⟶ S.X₃.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The cycles functor ShortComplex C ⥤ C which sends a short complex S to S.cycles
which is a kernel of S.g : S.X₂ ⟶ S.X₃.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The natural transformation S.cycles ⟶ S.leftHomology for all short complexes S.
Equations
- CategoryTheory.ShortComplex.leftHomologyπNatTrans C = { app := fun (S : CategoryTheory.ShortComplex C) => S.leftHomologyπ, naturality := ⋯ }
Instances For
The natural transformation S.cycles ⟶ S.X₂ for all short complexes S.
Equations
- CategoryTheory.ShortComplex.iCyclesNatTrans C = { app := fun (S : CategoryTheory.ShortComplex C) => S.iCycles, naturality := ⋯ }
Instances For
The natural transformation S.X₁ ⟶ S.cycles for all short complexes S.
Equations
- CategoryTheory.ShortComplex.toCyclesNatTrans C = { app := fun (S : CategoryTheory.ShortComplex C) => S.toCycles, naturality := ⋯ }
Instances For
If φ : S₁ ⟶ S₂ is a morphism of short complexes such that φ.τ₁ is epi, φ.τ₂ is an iso
and φ.τ₃ is mono, then a left homology data for S₁ induces a left homology data for S₂ with
the same K and H fields. The inverse construction is ofEpiOfIsIsoOfMono'.
Equations
- One or more equations did not get rendered due to their size.
Instances For
If φ : S₁ ⟶ S₂ is a morphism of short complexes such that φ.τ₁ is epi, φ.τ₂ is an iso
and φ.τ₃ is mono, then a left homology data for S₂ induces a left homology data for S₁ with
the same K and H fields. The inverse construction is ofEpiOfIsIsoOfMono.
Equations
- One or more equations did not get rendered due to their size.
Instances For
If e : S₁ ≅ S₂ is an isomorphism of short complexes and h₁ : LeftHomologyData S₁,
this is the left homology data for S₂ deduced from the isomorphism.
Equations
Instances For
This left homology map data expresses compatibilities of the left homology data
constructed by LeftHomologyData.ofEpiOfIsIsoOfMono
Equations
- One or more equations did not get rendered due to their size.
Instances For
This left homology map data expresses compatibilities of the left homology data
constructed by LeftHomologyData.ofEpiOfIsIsoOfMono'
Equations
- One or more equations did not get rendered due to their size.
Instances For
If a morphism of short complexes φ : S₁ ⟶ S₂ is such that φ.τ₁ is epi, φ.τ₂ is an iso,
and φ.τ₃ is mono, then the induced morphism on left homology is an isomorphism.
A morphism k : A ⟶ S.X₂ such that k ≫ S.g = 0 lifts to a morphism A ⟶ S.cycles.
Equations
- S.liftCycles k hk = S.leftHomologyData.liftK k hk
Instances For
Via S.iCycles : S.cycles ⟶ S.X₂, the object S.cycles identifies to the
kernel of S.g : S.X₂ ⟶ S.X₃.
Equations
Instances For
The canonical isomorphism S.cycles ≅ kernel S.g.
Equations
- S.cyclesIsoKernel = { hom := CategoryTheory.Limits.kernel.lift S.g S.iCycles ⋯, inv := S.liftCycles (CategoryTheory.Limits.kernel.ι S.g) ⋯, hom_inv_id := ⋯, inv_hom_id := ⋯ }
Instances For
The morphism A ⟶ S.leftHomology obtained from a morphism k : A ⟶ S.X₂
such that k ≫ S.g = 0.
Equations
- S.liftLeftHomology k hk = CategoryTheory.CategoryStruct.comp (S.liftCycles k hk) S.leftHomologyπ
Instances For
Via S.leftHomologyπ : S.cycles ⟶ S.leftHomology, the object S.leftHomology identifies
to the cokernel of S.toCycles : S.X₁ ⟶ S.cycles.
Equations
Instances For
The left homology of a short complex S identifies to the cokernel of the canonical
morphism S.X₁ ⟶ kernel S.g.
Equations
Instances For
The following lemmas and instance gives a sufficient condition for a morphism of short complexes to induce an isomorphism on cycles.