Documentation

Mathlib.Algebra.Homology.ModuleCat

Complexes of modules #

We provide some additional API to work with homological complexes in ModuleCat R.

theorem ModuleCat.homology_ext {R : Type v} [Ring R] {L : ModuleCat R} {M : ModuleCat R} {N : ModuleCat R} {K : ModuleCat R} {f : L M} {g : M N} (w : CategoryTheory.CategoryStruct.comp f g = 0) {h : homology f g w K} {k : homology f g w K} (w : ∀ (x : { x // x LinearMap.ker g }), h (↑(CategoryTheory.Limits.cokernel.π (imageToKernel f g w)) (ModuleCat.toKernelSubobject x)) = k (↑(CategoryTheory.Limits.cokernel.π (imageToKernel f g w)) (ModuleCat.toKernelSubobject x))) :
h = k

To prove that two maps out of a homology group are equal, it suffices to check they are equal on the images of cycles.

@[inline, reducible]
abbrev ModuleCat.toCycles {R : Type v} [Ring R] {ι : Type u_1} {c : ComplexShape ι} {C : HomologicalComplex (ModuleCat R) c} {i : ι} (x : { x // x LinearMap.ker (HomologicalComplex.dFrom C i) }) :
↑(CategoryTheory.Subobject.underlying.obj (HomologicalComplex.cycles C i))

Bundle an element C.X i such that C.dFrom i x = 0 as a term of C.cycles i.

Instances For
    theorem ModuleCat.cycles_ext {R : Type v} [Ring R] {ι : Type u_1} {c : ComplexShape ι} {C : HomologicalComplex (ModuleCat R) c} {i : ι} {x : ↑(CategoryTheory.Subobject.underlying.obj (HomologicalComplex.cycles C i))} {y : ↑(CategoryTheory.Subobject.underlying.obj (HomologicalComplex.cycles C i))} (w : ↑(CategoryTheory.Subobject.arrow (HomologicalComplex.cycles C i)) x = ↑(CategoryTheory.Subobject.arrow (HomologicalComplex.cycles C i)) y) :
    x = y
    @[simp]
    theorem ModuleCat.cyclesMap_toCycles {R : Type v} [Ring R] {ι : Type u_1} {c : ComplexShape ι} {C : HomologicalComplex (ModuleCat R) c} {D : HomologicalComplex (ModuleCat R) c} (f : C D) {i : ι} (x : { x // x LinearMap.ker (HomologicalComplex.dFrom C i) }) :
    @[inline, reducible]
    abbrev ModuleCat.toHomology {R : Type v} [Ring R] {ι : Type u_1} {c : ComplexShape ι} {C : HomologicalComplex (ModuleCat R) c} {i : ι} (x : { x // x LinearMap.ker (HomologicalComplex.dFrom C i) }) :

    Build a term of C.homology i from an element C.X i such that C.d_from i x = 0.

    Instances For
      theorem ModuleCat.homology_ext' {R : Type v} [Ring R] {ι : Type u_1} {c : ComplexShape ι} {C : HomologicalComplex (ModuleCat R) c} {M : ModuleCat R} (i : ι) {h : HomologicalComplex.homology C i M} {k : HomologicalComplex.homology C i M} (w : ∀ (x : { x // x LinearMap.ker (HomologicalComplex.dFrom C i) }), h (ModuleCat.toHomology x) = k (ModuleCat.toHomology x)) :
      h = k