Documentation

Mathlib.Algebra.Homology.HomotopyFiber

The homotopy fiber of a morphism of homological complexes #

In this file, we construct the homotopy fiber of a morphism φ : F ⟶ G between homological complexes. Moreover, we dualise the definition of the cylinder (which is a particular case of a homotopy cofiber) in order to define the path object of a homological complex.

A morphism of homological complexes φ : F ⟶ G has a homotopy fiber if for all indices i and j such that c.Rel i j, the binary biproduct F.X i ⊞ G.X j exists.

Instances
    @[reducible, inline]

    The property that a homological complex K has a path object, i.e. that the morphism K ⟶ K ⊞ K induced by 𝟙 K and -𝟙 K has a homotopy fiber.

    Equations
    Instances For

      The path object of a homological complex is defined here by dualizing the cylinder object of K.op.

      Equations
      Instances For
        noncomputable def HomologicalComplex.pathObject.homotopyEquiv {C : Type u_1} [CategoryTheory.Category.{v_1, u_1} C] [CategoryTheory.Preadditive C] {α : Type u_2} {c : ComplexShape α} (K : HomologicalComplex C c) [DecidableRel c.Rel] [∀ (i : α), CategoryTheory.Limits.HasBinaryBiproduct (K.X i) (K.X i)] [K.HasPathObject] (hc : ∀ (i : α), ∃ (j : α), c.Rel i j) :

        The homotopy equivalence between K and K.pathObject.

        Equations
        • One or more equations did not get rendered due to their size.
        Instances For
          @[simp]
          theorem HomologicalComplex.pathObject.homotopyEquiv_hom {C : Type u_1} [CategoryTheory.Category.{v_1, u_1} C] [CategoryTheory.Preadditive C] {α : Type u_2} {c : ComplexShape α} (K : HomologicalComplex C c) [DecidableRel c.Rel] [∀ (i : α), CategoryTheory.Limits.HasBinaryBiproduct (K.X i) (K.X i)] [K.HasPathObject] (hc : ∀ (i : α), ∃ (j : α), c.Rel i j) :
          @[simp]
          theorem HomologicalComplex.pathObject.homotopyEquiv_inv {C : Type u_1} [CategoryTheory.Category.{v_1, u_1} C] [CategoryTheory.Preadditive C] {α : Type u_2} {c : ComplexShape α} (K : HomologicalComplex C c) [DecidableRel c.Rel] [∀ (i : α), CategoryTheory.Limits.HasBinaryBiproduct (K.X i) (K.X i)] [K.HasPathObject] (hc : ∀ (i : α), ∃ (j : α), c.Rel i j) :
          noncomputable def HomologicalComplex.pathObject.homotopy₀₁ {C : Type u_1} [CategoryTheory.Category.{v_1, u_1} C] [CategoryTheory.Preadditive C] {α : Type u_2} {c : ComplexShape α} (K : HomologicalComplex C c) [DecidableRel c.Rel] [∀ (i : α), CategoryTheory.Limits.HasBinaryBiproduct (K.X i) (K.X i)] [K.HasPathObject] (hc : ∀ (i : α), ∃ (j : α), c.Rel i j) :

          The homotopy between pathObject.ι₀ K and pathObject.ι₁ K.

          Equations
          Instances For
            noncomputable def HomologicalComplex.pathObject.lift {C : Type u_1} [CategoryTheory.Category.{v_1, u_1} C] [CategoryTheory.Preadditive C] {α : Type u_2} {c : ComplexShape α} {F K : HomologicalComplex C c} [DecidableRel c.Rel] [∀ (i : α), CategoryTheory.Limits.HasBinaryBiproduct (K.X i) (K.X i)] [K.HasPathObject] (φ₀ φ₁ : F K) (h : Homotopy φ₀ φ₁) :

            The morphism F ⟶ K.pathObject that is induced by two morphisms φ₀ φ₁ : F ⟶ K and a homotopy h : Homotopy φ₀ φ₁.

            Equations
            • One or more equations did not get rendered due to their size.
            Instances For
              @[simp]
              theorem HomologicalComplex.pathObject.lift_π₀ {C : Type u_1} [CategoryTheory.Category.{v_1, u_1} C] [CategoryTheory.Preadditive C] {α : Type u_2} {c : ComplexShape α} {F K : HomologicalComplex C c} [DecidableRel c.Rel] [∀ (i : α), CategoryTheory.Limits.HasBinaryBiproduct (K.X i) (K.X i)] [K.HasPathObject] (φ₀ φ₁ : F K) (h : Homotopy φ₀ φ₁) :
              @[simp]
              theorem HomologicalComplex.pathObject.lift_π₁ {C : Type u_1} [CategoryTheory.Category.{v_1, u_1} C] [CategoryTheory.Preadditive C] {α : Type u_2} {c : ComplexShape α} {F K : HomologicalComplex C c} [DecidableRel c.Rel] [∀ (i : α), CategoryTheory.Limits.HasBinaryBiproduct (K.X i) (K.X i)] [K.HasPathObject] (φ₀ φ₁ : F K) (h : Homotopy φ₀ φ₁) :

              The isomorphism expressing the commutation between taking the path object of a homological complex and applying an additive functor.

              Equations
              • One or more equations did not get rendered due to their size.
              Instances For
                @[simp]
                theorem HomologicalComplex.pathObject.mapHomologicalComplexObjIso_inv_map_π₀ {C : Type u_1} [CategoryTheory.Category.{v_1, u_1} C] [CategoryTheory.Preadditive C] {α : Type u_2} {c : ComplexShape α} (K : HomologicalComplex C c) [DecidableRel c.Rel] [∀ (i : α), CategoryTheory.Limits.HasBinaryBiproduct (K.X i) (K.X i)] [K.HasPathObject] {D : Type u_3} [CategoryTheory.Category.{v_2, u_3} D] [CategoryTheory.Preadditive D] (H : CategoryTheory.Functor C D) [H.Additive] [∀ (i : α), CategoryTheory.Limits.HasBinaryBiproduct (((H.mapHomologicalComplex c).obj K).X i) (((H.mapHomologicalComplex c).obj K).X i)] [((H.mapHomologicalComplex c).obj K).HasPathObject] [∀ (i : α), CategoryTheory.Limits.HasBinaryBiproduct (((H.op.mapHomologicalComplex c.symm).obj K.op).X i) (((H.op.mapHomologicalComplex c.symm).obj K.op).X i)] [HasHomotopyCofiber (CategoryTheory.Limits.biprod.lift (CategoryTheory.CategoryStruct.id ((H.op.mapHomologicalComplex c.symm).obj K.op)) (-CategoryTheory.CategoryStruct.id ((H.op.mapHomologicalComplex c.symm).obj K.op)))] [HasHomotopyCofiber ((H.op.mapHomologicalComplex c.symm).map (CategoryTheory.Limits.biprod.lift (CategoryTheory.CategoryStruct.id K.op) (-CategoryTheory.CategoryStruct.id K.op)))] [∀ (i : α), CategoryTheory.Limits.HasBinaryBiproduct (K.op.X i) (K.op.X i)] (hc : ∀ (i : α), ∃ (j : α), c.Rel i j) :
                @[simp]
                theorem HomologicalComplex.pathObject.mapHomologicalComplexObjIso_inv_map_π₀_assoc {C : Type u_1} [CategoryTheory.Category.{v_1, u_1} C] [CategoryTheory.Preadditive C] {α : Type u_2} {c : ComplexShape α} (K : HomologicalComplex C c) [DecidableRel c.Rel] [∀ (i : α), CategoryTheory.Limits.HasBinaryBiproduct (K.X i) (K.X i)] [K.HasPathObject] {D : Type u_3} [CategoryTheory.Category.{v_2, u_3} D] [CategoryTheory.Preadditive D] (H : CategoryTheory.Functor C D) [H.Additive] [∀ (i : α), CategoryTheory.Limits.HasBinaryBiproduct (((H.mapHomologicalComplex c).obj K).X i) (((H.mapHomologicalComplex c).obj K).X i)] [((H.mapHomologicalComplex c).obj K).HasPathObject] [∀ (i : α), CategoryTheory.Limits.HasBinaryBiproduct (((H.op.mapHomologicalComplex c.symm).obj K.op).X i) (((H.op.mapHomologicalComplex c.symm).obj K.op).X i)] [HasHomotopyCofiber (CategoryTheory.Limits.biprod.lift (CategoryTheory.CategoryStruct.id ((H.op.mapHomologicalComplex c.symm).obj K.op)) (-CategoryTheory.CategoryStruct.id ((H.op.mapHomologicalComplex c.symm).obj K.op)))] [HasHomotopyCofiber ((H.op.mapHomologicalComplex c.symm).map (CategoryTheory.Limits.biprod.lift (CategoryTheory.CategoryStruct.id K.op) (-CategoryTheory.CategoryStruct.id K.op)))] [∀ (i : α), CategoryTheory.Limits.HasBinaryBiproduct (K.op.X i) (K.op.X i)] (hc : ∀ (i : α), ∃ (j : α), c.Rel i j) {Z : HomologicalComplex D c} (h : (H.mapHomologicalComplex c).obj K Z) :
                @[simp]
                theorem HomologicalComplex.pathObject.mapHomologicalComplexObjIso_inv_map_π₁ {C : Type u_1} [CategoryTheory.Category.{v_1, u_1} C] [CategoryTheory.Preadditive C] {α : Type u_2} {c : ComplexShape α} (K : HomologicalComplex C c) [DecidableRel c.Rel] [∀ (i : α), CategoryTheory.Limits.HasBinaryBiproduct (K.X i) (K.X i)] [K.HasPathObject] {D : Type u_3} [CategoryTheory.Category.{v_2, u_3} D] [CategoryTheory.Preadditive D] (H : CategoryTheory.Functor C D) [H.Additive] [∀ (i : α), CategoryTheory.Limits.HasBinaryBiproduct (((H.mapHomologicalComplex c).obj K).X i) (((H.mapHomologicalComplex c).obj K).X i)] [((H.mapHomologicalComplex c).obj K).HasPathObject] [∀ (i : α), CategoryTheory.Limits.HasBinaryBiproduct (((H.op.mapHomologicalComplex c.symm).obj K.op).X i) (((H.op.mapHomologicalComplex c.symm).obj K.op).X i)] [HasHomotopyCofiber (CategoryTheory.Limits.biprod.lift (CategoryTheory.CategoryStruct.id ((H.op.mapHomologicalComplex c.symm).obj K.op)) (-CategoryTheory.CategoryStruct.id ((H.op.mapHomologicalComplex c.symm).obj K.op)))] [HasHomotopyCofiber ((H.op.mapHomologicalComplex c.symm).map (CategoryTheory.Limits.biprod.lift (CategoryTheory.CategoryStruct.id K.op) (-CategoryTheory.CategoryStruct.id K.op)))] [∀ (i : α), CategoryTheory.Limits.HasBinaryBiproduct (K.op.X i) (K.op.X i)] (hc : ∀ (i : α), ∃ (j : α), c.Rel i j) :
                @[simp]
                theorem HomologicalComplex.pathObject.mapHomologicalComplexObjIso_inv_map_π₁_assoc {C : Type u_1} [CategoryTheory.Category.{v_1, u_1} C] [CategoryTheory.Preadditive C] {α : Type u_2} {c : ComplexShape α} (K : HomologicalComplex C c) [DecidableRel c.Rel] [∀ (i : α), CategoryTheory.Limits.HasBinaryBiproduct (K.X i) (K.X i)] [K.HasPathObject] {D : Type u_3} [CategoryTheory.Category.{v_2, u_3} D] [CategoryTheory.Preadditive D] (H : CategoryTheory.Functor C D) [H.Additive] [∀ (i : α), CategoryTheory.Limits.HasBinaryBiproduct (((H.mapHomologicalComplex c).obj K).X i) (((H.mapHomologicalComplex c).obj K).X i)] [((H.mapHomologicalComplex c).obj K).HasPathObject] [∀ (i : α), CategoryTheory.Limits.HasBinaryBiproduct (((H.op.mapHomologicalComplex c.symm).obj K.op).X i) (((H.op.mapHomologicalComplex c.symm).obj K.op).X i)] [HasHomotopyCofiber (CategoryTheory.Limits.biprod.lift (CategoryTheory.CategoryStruct.id ((H.op.mapHomologicalComplex c.symm).obj K.op)) (-CategoryTheory.CategoryStruct.id ((H.op.mapHomologicalComplex c.symm).obj K.op)))] [HasHomotopyCofiber ((H.op.mapHomologicalComplex c.symm).map (CategoryTheory.Limits.biprod.lift (CategoryTheory.CategoryStruct.id K.op) (-CategoryTheory.CategoryStruct.id K.op)))] [∀ (i : α), CategoryTheory.Limits.HasBinaryBiproduct (K.op.X i) (K.op.X i)] (hc : ∀ (i : α), ∃ (j : α), c.Rel i j) {Z : HomologicalComplex D c} (h : (H.mapHomologicalComplex c).obj K Z) :