(Co)homology groups for complexes
We setup that part of the theory of homology groups which works in any category with kernels and images.
We define the homology groups themselves, and show that they induce maps on kernels.
Under the additional assumption that our category has equalizers and functorial images, we construct induced morphisms on images and functorial induced morphisms in homology.
Chains and cochains
Throughout we work with complexes graded by an arbitrary [add_comm_group β]
,
with a differential with grading b : β
.
Thus we're simultaneously doing homology and cohomology groups
(and in future, e.g., enabling computing homologies for successive pages of spectral sequences).
At the end of the file we set up abbreviations cohomology
and graded_cohomology
,
so that when you're working with a C : cochain_complex V
, you can write C.cohomology i
rather than the confusing C.homology i
.
The map induced by a chain map between the kernels of the differentials.
Equations
- homological_complex.kernel_map f i = category_theory.limits.kernel.lift (C'.d i) (category_theory.limits.kernel.ι (C.d i) ≫ f.f i) _
The kernels of the differentials of a complex form a β
-graded object.
Equations
- homological_complex.kernel_functor = {obj := λ (C : homological_complex V b) (i : β), category_theory.limits.kernel (C.d i), map := λ (X Y : homological_complex V b) (f : X ⟶ Y) (i : β), homological_complex.kernel_map f i, map_id' := _, map_comp' := _}
A morphism of complexes induces a morphism on the images of the differentials in every degree.
The connecting morphism from the image of d i
to the kernel of d (i ± 1)
.
Equations
- C.image_to_kernel_map i = category_theory.image_to_kernel_map (C.d i) (C.d (i + b)) _
The i
-th homology group of the complex C
.
Equations
A chain map induces a morphism in homology at every degree.
Equations
- homological_complex.homology_map f i = category_theory.limits.cokernel.desc (C.image_to_kernel_map (i - b)) (homological_complex.kernel_map f (i - b + b) ≫ category_theory.limits.cokernel.π (C'.image_to_kernel_map (i - b))) _
The i
-th homology functor from β
graded complexes to V
.
Equations
- homological_complex.homology V i = {obj := λ (C : homological_complex V b), homological_complex.homology_group i C, map := λ (C C' : homological_complex V b) (f : C ⟶ C'), homological_complex.homology_map f i, map_id' := _, map_comp' := _}
The homology functor from β
graded complexes to β
graded objects in V
.
Equations
- homological_complex.graded_homology V = {obj := λ (C : homological_complex V b) (i : β), homological_complex.homology_group i C, map := λ (C C' : homological_complex V b) (f : C ⟶ C') (i : β), homological_complex.homology_map f i, map_id' := _, map_comp' := _}
We now set up abbreviations so that you can write C.cohomology i
or (graded_cohomology V).map f
,
etc., when C
is a cochain complex.
The i
-th cohomology group of the cochain complex C
.
A chain map induces a morphism in cohomology at every degree.
The i
-th homology functor from cohain complexes to V
.
The cohomology functor from cochain complexes to ℤ
-graded objects in V
.