Documentation

Mathlib.Algebra.Homology.Double

A homological complex lying in two degrees #

Given c : ComplexShape ι, distinct indices i₀ and i₁ such that hi₀₁ : c.Rel i₀ i₁, we construct a homological complex double f hi₀₁ for any morphism f : X₀ ⟶ X₁. It consists of the objects X₀ and X₁ in degrees i₀ and i₁, respectively, with the differential X₀ ⟶ X₁ given by f, and zero everywhere else.

noncomputable def HomologicalComplex.double {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Limits.HasZeroMorphisms C] [CategoryTheory.Limits.HasZeroObject C] {X₀ X₁ : C} (f : X₀ X₁) {ι : Type u_2} {c : ComplexShape ι} {i₀ i₁ : ι} (hi₀₁ : c.Rel i₀ i₁) :

Given a complex shape c, two indices i₀ and i₁ such that c.Rel i₀ i₁, and f : X₀ ⟶ X₁, this is the homological complex which, if i₀ ≠ i₁, only consists of the map f in degrees i₀ and i₁, and zero everywhere else.

Equations
  • One or more equations did not get rendered due to their size.
Instances For
    theorem HomologicalComplex.isZero_double_X {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Limits.HasZeroMorphisms C] [CategoryTheory.Limits.HasZeroObject C] {X₀ X₁ : C} (f : X₀ X₁) {ι : Type u_2} {c : ComplexShape ι} {i₀ i₁ : ι} (hi₀₁ : c.Rel i₀ i₁) (k : ι) (h₀ : k i₀) (h₁ : k i₁) :
    noncomputable def HomologicalComplex.doubleXIso₀ {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Limits.HasZeroMorphisms C] [CategoryTheory.Limits.HasZeroObject C] {X₀ X₁ : C} (f : X₀ X₁) {ι : Type u_2} {c : ComplexShape ι} {i₀ i₁ : ι} (hi₀₁ : c.Rel i₀ i₁) :
    (double f hi₀₁).X i₀ X₀

    The isomorphism (double f hi₀₁).X i₀ ≅ X₀.

    Equations
    Instances For
      noncomputable def HomologicalComplex.doubleXIso₁ {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Limits.HasZeroMorphisms C] [CategoryTheory.Limits.HasZeroObject C] {X₀ X₁ : C} (f : X₀ X₁) {ι : Type u_2} {c : ComplexShape ι} {i₀ i₁ : ι} (hi₀₁ : c.Rel i₀ i₁) (h : i₀ i₁) :
      (double f hi₀₁).X i₁ X₁

      The isomorphism (double f hi₀₁).X i₁ ≅ X₁.

      Equations
      Instances For
        theorem HomologicalComplex.double_d {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Limits.HasZeroMorphisms C] [CategoryTheory.Limits.HasZeroObject C] {X₀ X₁ : C} (f : X₀ X₁) {ι : Type u_2} {c : ComplexShape ι} {i₀ i₁ : ι} (hi₀₁ : c.Rel i₀ i₁) (h : i₀ i₁) :
        theorem HomologicalComplex.double_d_eq_zero₀ {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Limits.HasZeroMorphisms C] [CategoryTheory.Limits.HasZeroObject C] {X₀ X₁ : C} (f : X₀ X₁) {ι : Type u_2} {c : ComplexShape ι} {i₀ i₁ : ι} (hi₀₁ : c.Rel i₀ i₁) (a b : ι) (ha : a i₀) :
        (double f hi₀₁).d a b = 0
        theorem HomologicalComplex.double_d_eq_zero₁ {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Limits.HasZeroMorphisms C] [CategoryTheory.Limits.HasZeroObject C] {X₀ X₁ : C} (f : X₀ X₁) {ι : Type u_2} {c : ComplexShape ι} {i₀ i₁ : ι} (hi₀₁ : c.Rel i₀ i₁) (a b : ι) (hb : b i₁) :
        (double f hi₀₁).d a b = 0
        theorem HomologicalComplex.from_double_hom_ext {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Limits.HasZeroMorphisms C] [CategoryTheory.Limits.HasZeroObject C] {X₀ X₁ : C} {f : X₀ X₁} {ι : Type u_2} {c : ComplexShape ι} {i₀ i₁ : ι} {hi₀₁ : c.Rel i₀ i₁} {K : HomologicalComplex C c} {φ φ' : double f hi₀₁ K} (h₀ : φ.f i₀ = φ'.f i₀) (h₁ : φ.f i₁ = φ'.f i₁) :
        φ = φ'
        theorem HomologicalComplex.to_double_hom_ext {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Limits.HasZeroMorphisms C] [CategoryTheory.Limits.HasZeroObject C] {X₀ X₁ : C} {f : X₀ X₁} {ι : Type u_2} {c : ComplexShape ι} {i₀ i₁ : ι} {hi₀₁ : c.Rel i₀ i₁} {K : HomologicalComplex C c} {φ φ' : K double f hi₀₁} (h₀ : φ.f i₀ = φ'.f i₀) (h₁ : φ.f i₁ = φ'.f i₁) :
        φ = φ'
        noncomputable def HomologicalComplex.mkHomFromDouble {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Limits.HasZeroMorphisms C] [CategoryTheory.Limits.HasZeroObject C] {X₀ X₁ : C} {f : X₀ X₁} {ι : Type u_2} {c : ComplexShape ι} {i₀ i₁ : ι} (hi₀₁ : c.Rel i₀ i₁) (h : i₀ i₁) {K : HomologicalComplex C c} (φ₀ : X₀ K.X i₀) (φ₁ : X₁ K.X i₁) (comm : CategoryTheory.CategoryStruct.comp φ₀ (K.d i₀ i₁) = CategoryTheory.CategoryStruct.comp f φ₁) (hφ : ∀ (k : ι), c.Rel i₁ kCategoryTheory.CategoryStruct.comp φ₁ (K.d i₁ k) = 0) :
        double f hi₀₁ K

        Constructor for morphisms from a homological complex double f hi₀₁.

        Equations
        • One or more equations did not get rendered due to their size.
        Instances For
          @[simp]
          theorem HomologicalComplex.mkHomFromDouble_f₀ {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Limits.HasZeroMorphisms C] [CategoryTheory.Limits.HasZeroObject C] {X₀ X₁ : C} {f : X₀ X₁} {ι : Type u_2} {c : ComplexShape ι} {i₀ i₁ : ι} (hi₀₁ : c.Rel i₀ i₁) (h : i₀ i₁) {K : HomologicalComplex C c} (φ₀ : X₀ K.X i₀) (φ₁ : X₁ K.X i₁) (comm : CategoryTheory.CategoryStruct.comp φ₀ (K.d i₀ i₁) = CategoryTheory.CategoryStruct.comp f φ₁) (hφ : ∀ (k : ι), c.Rel i₁ kCategoryTheory.CategoryStruct.comp φ₁ (K.d i₁ k) = 0) :
          (mkHomFromDouble hi₀₁ h φ₀ φ₁ comm ).f i₀ = CategoryTheory.CategoryStruct.comp (doubleXIso₀ f hi₀₁).hom φ₀
          theorem HomologicalComplex.mkHomFromDouble_f₀_assoc {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Limits.HasZeroMorphisms C] [CategoryTheory.Limits.HasZeroObject C] {X₀ X₁ : C} {f : X₀ X₁} {ι : Type u_2} {c : ComplexShape ι} {i₀ i₁ : ι} (hi₀₁ : c.Rel i₀ i₁) (h : i₀ i₁) {K : HomologicalComplex C c} (φ₀ : X₀ K.X i₀) (φ₁ : X₁ K.X i₁) (comm : CategoryTheory.CategoryStruct.comp φ₀ (K.d i₀ i₁) = CategoryTheory.CategoryStruct.comp f φ₁) (hφ : ∀ (k : ι), c.Rel i₁ kCategoryTheory.CategoryStruct.comp φ₁ (K.d i₁ k) = 0) {Z : C} (h✝ : K.X i₀ Z) :
          @[simp]
          theorem HomologicalComplex.mkHomFromDouble_f₁ {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Limits.HasZeroMorphisms C] [CategoryTheory.Limits.HasZeroObject C] {X₀ X₁ : C} {f : X₀ X₁} {ι : Type u_2} {c : ComplexShape ι} {i₀ i₁ : ι} (hi₀₁ : c.Rel i₀ i₁) (h : i₀ i₁) {K : HomologicalComplex C c} (φ₀ : X₀ K.X i₀) (φ₁ : X₁ K.X i₁) (comm : CategoryTheory.CategoryStruct.comp φ₀ (K.d i₀ i₁) = CategoryTheory.CategoryStruct.comp f φ₁) (hφ : ∀ (k : ι), c.Rel i₁ kCategoryTheory.CategoryStruct.comp φ₁ (K.d i₁ k) = 0) :
          (mkHomFromDouble hi₀₁ h φ₀ φ₁ comm ).f i₁ = CategoryTheory.CategoryStruct.comp (doubleXIso₁ f hi₀₁ h).hom φ₁
          theorem HomologicalComplex.mkHomFromDouble_f₁_assoc {C : Type u_1} [CategoryTheory.Category.{u_3, u_1} C] [CategoryTheory.Limits.HasZeroMorphisms C] [CategoryTheory.Limits.HasZeroObject C] {X₀ X₁ : C} {f : X₀ X₁} {ι : Type u_2} {c : ComplexShape ι} {i₀ i₁ : ι} (hi₀₁ : c.Rel i₀ i₁) (h : i₀ i₁) {K : HomologicalComplex C c} (φ₀ : X₀ K.X i₀) (φ₁ : X₁ K.X i₁) (comm : CategoryTheory.CategoryStruct.comp φ₀ (K.d i₀ i₁) = CategoryTheory.CategoryStruct.comp f φ₁) (hφ : ∀ (k : ι), c.Rel i₁ kCategoryTheory.CategoryStruct.comp φ₁ (K.d i₁ k) = 0) {Z : C} (h✝ : K.X i₁ Z) :

          Let c : ComplexShape ι, and i₀ and i₁ be distinct indices such that hi₀₁ : c.Rel i₀ i₁, then for any X : C, the functor which sends K : HomologicalComplex C c to X ⟶ K.X i is corepresentable by double (𝟙 X) hi₀₁.

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

            If i has no successor for the complex shape c, then for any X : C, the functor which sends K : HomologicalComplex C c to X ⟶ K.X i is corepresentable by (single C c i).obj X.

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