File: Mathlib/CategoryTheory/Triangulated/HomologicalFunctor.lean

full_name: CategoryTheory.Functor.IsHomological.exact
code: /-- A functor from a pretriangulated category to an abelian category is an homological functor
if it sends distinguished triangles to exact sequences. -/
class IsHomological extends F.PreservesZeroMorphisms : Prop where
  exact (T : Triangle C) (hT : T ∈ distTriang C) :
    ((shortComplexOfDistTriangle T hT).map F).Exact
goal: ((CategoryTheory.Pretriangulated.shortComplexOfDistTriangle T hT).map F).Exact

full_name: CategoryTheory.Functor.IsHomological
code: /-- A functor from a pretriangulated category to an abelian category is an homological functor
if it sends distinguished triangles to exact sequences. -/
class IsHomological extends F.PreservesZeroMorphisms : Prop where
  exact (T : Triangle C) (hT : T ∈ distTriang C) :
    ((shortComplexOfDistTriangle T hT).map F).Exact
goal: Prop

full_name: CategoryTheory.Functor.map_distinguished_exact
code: lemma map_distinguished_exact [F.IsHomological] (T : Triangle C) (hT : T ∈ distTriang C) :
    ((shortComplexOfDistTriangle T hT).map F).Exact 
goal: ((CategoryTheory.Pretriangulated.shortComplexOfDistTriangle T hT).map F).Exact

full_name: CategoryTheory.Functor.instIsHomologicalCompOfIsTriangulated
code: instance (L : C ⥤ D) (F : D ⥤ A) [L.CommShift ℤ] [L.IsTriangulated] [F.IsHomological] :
    (L ⋙ F).IsHomological 
goal: (L.comp F).IsHomological

full_name: CategoryTheory.Functor.IsHomological.mk'
code: lemma IsHomological.mk' [F.PreservesZeroMorphisms]
    (hF : ∀ (T : Pretriangulated.Triangle C) (hT : T ∈ distTriang C),
      ∃ (T' : Pretriangulated.Triangle C) (e : T ≅ T'),
      ((shortComplexOfDistTriangle T' (isomorphic_distinguished _ hT _ e.symm)).map F).Exact) :
    F.IsHomological 
goal: F.IsHomological

full_name: CategoryTheory.Functor.IsHomological.of_iso
code: lemma IsHomological.of_iso {F₁ F₂ : C ⥤ A} [F₁.IsHomological] (e : F₁ ≅ F₂) :
    F₂.IsHomological 
goal: F₂.IsHomological

full_name: CategoryTheory.Functor.homologicalKernel
code: /-- The kernel of a homological functor `F : C ⥤ A` is the strictly full
triangulated subcategory consisting of objects `X` such that
for all `n : ℤ`, `F.obj (X⟦n⟧)` is zero. -/
def homologicalKernel [F.IsHomological] :
    Triangulated.Subcategory C 
goal: CategoryTheory.Triangulated.Subcategory C

full_name: CategoryTheory.Functor.instClosedUnderIsomorphismsPHomologicalKernel
code: instance [F.IsHomological] : ClosedUnderIsomorphisms F.homologicalKernel.P 
goal: CategoryTheory.ClosedUnderIsomorphisms F.homologicalKernel.P

full_name: CategoryTheory.Functor.mem_homologicalKernel_iff
code: lemma mem_homologicalKernel_iff [F.IsHomological] [F.ShiftSequence ℤ] (X : C) :
    F.homologicalKernel.P X ↔ ∀ (n : ℤ), IsZero ((F.shift n).obj X) 
goal: F.homologicalKernel.P X ↔ ∀ (n : ℤ), CategoryTheory.Limits.IsZero ((F.shift n).obj X)

full_name: CategoryTheory.Functor.instPreservesLimitsOfShapeDiscreteWalkingPairOfIsHomological
code: noncomputable instance (priority := 100) [F.IsHomological] :
    PreservesLimitsOfShape (Discrete WalkingPair) F 
goal: CategoryTheory.Limits.PreservesLimitsOfShape (CategoryTheory.Discrete CategoryTheory.Limits.WalkingPair) F

full_name: CategoryTheory.Functor.instAdditiveOfIsHomological
code: instance (priority := 100) [F.IsHomological] : F.Additive 
goal: F.Additive

full_name: CategoryTheory.Functor.isHomological_of_localization
code: lemma isHomological_of_localization (L : C ⥤ D)
    [L.CommShift ℤ] [L.IsTriangulated] [L.mapArrow.EssSurj] (F : D ⥤ A)
    (G : C ⥤ A) (e : L ⋙ F ≅ G) [G.IsHomological] :
    F.IsHomological 
goal: F.IsHomological

full_name: CategoryTheory.Functor.homologySequenceδ
code: /-- The connecting homomorphism in the long exact sequence attached to an homological
functor and a distinguished triangle. -/
noncomputable def homologySequenceδ :
    (F.shift n₀).obj T.obj₃ ⟶ (F.shift n₁).obj T.obj₁ 
goal: (F.shift n₀).obj T.obj₃ ⟶ (F.shift n₁).obj T.obj₁

full_name: CategoryTheory.Functor.homologySequenceδ_naturality
code: @[reassoc]
lemma homologySequenceδ_naturality :
    (F.shift n₀).map φ.hom₃ ≫ F.homologySequenceδ T' n₀ n₁ h =
      F.homologySequenceδ T n₀ n₁ h ≫ (F.shift n₁).map φ.hom₁ 
goal: CategoryTheory.CategoryStruct.comp ((F.shift n₀).map φ.hom₃) (F.homologySequenceδ T' n₀ n₁ h) =
  CategoryTheory.CategoryStruct.comp (F.homologySequenceδ T n₀ n₁ h) ((F.shift n₁).map φ.hom₁)

full_name: CategoryTheory.Functor.comp_homologySequenceδ
code: @[reassoc]
lemma comp_homologySequenceδ :
    (F.shift n₀).map T.mor₂ ≫ F.homologySequenceδ T n₀ n₁ h = 0 
goal: CategoryTheory.CategoryStruct.comp ((F.shift n₀).map T.mor₂) (F.homologySequenceδ T n₀ n₁ h) = 0

full_name: CategoryTheory.Functor.homologySequenceδ_comp
code: @[reassoc]
lemma homologySequenceδ_comp :
    F.homologySequenceδ T n₀ n₁ h ≫ (F.shift n₁).map T.mor₁ = 0 
goal: CategoryTheory.CategoryStruct.comp (F.homologySequenceδ T n₀ n₁ h) ((F.shift n₁).map T.mor₁) = 0

full_name: CategoryTheory.Functor.homologySequence_comp
code: @[reassoc]
lemma homologySequence_comp  :
    (F.shift n₀).map T.mor₁ ≫ (F.shift n₀).map T.mor₂ = 0 
goal: CategoryTheory.CategoryStruct.comp ((F.shift n₀).map T.mor₁) ((F.shift n₀).map T.mor₂) = 0

full_name: CategoryTheory.Functor.homologySequence_exact₂
code: lemma homologySequence_exact₂ :
    (ShortComplex.mk _ _ (F.homologySequence_comp T hT n₀)).Exact 
goal: (CategoryTheory.ShortComplex.mk ((F.shift n₀).map T.mor₁) ((F.shift n₀).map T.mor₂) ⋯).Exact

full_name: CategoryTheory.Functor.homologySequence_exact₃
code: lemma homologySequence_exact₃ :
    (ShortComplex.mk _ _ (F.comp_homologySequenceδ T hT _ _ h)).Exact 
goal: (CategoryTheory.ShortComplex.mk ((F.shift n₀).map T.mor₂) (F.homologySequenceδ T n₀ n₁ h) ⋯).Exact

full_name: CategoryTheory.Functor.homologySequence_exact₁
code: lemma homologySequence_exact₁ :
    (ShortComplex.mk _ _ (F.homologySequenceδ_comp T hT _ _ h)).Exact 
goal: (CategoryTheory.ShortComplex.mk (F.homologySequenceδ T n₀ n₁ h) ((F.shift n₁).map T.mor₁) ⋯).Exact

full_name: CategoryTheory.Functor.homologySequence_epi_shift_map_mor₁_iff
code: lemma homologySequence_epi_shift_map_mor₁_iff :
    Epi ((F.shift n₀).map T.mor₁) ↔ (F.shift n₀).map T.mor₂ = 0 
goal: CategoryTheory.Epi ((F.shift n₀).map T.mor₁) ↔ (F.shift n₀).map T.mor₂ = 0

full_name: CategoryTheory.Functor.homologySequence_mono_shift_map_mor₁_iff
code: lemma homologySequence_mono_shift_map_mor₁_iff :
    Mono ((F.shift n₁).map T.mor₁) ↔ F.homologySequenceδ T n₀ n₁ h = 0 
goal: CategoryTheory.Mono ((F.shift n₁).map T.mor₁) ↔ F.homologySequenceδ T n₀ n₁ h = 0

full_name: CategoryTheory.Functor.homologySequence_epi_shift_map_mor₂_iff
code: lemma homologySequence_epi_shift_map_mor₂_iff :
    Epi ((F.shift n₀).map T.mor₂) ↔ F.homologySequenceδ T n₀ n₁ h = 0 
goal: CategoryTheory.Epi ((F.shift n₀).map T.mor₂) ↔ F.homologySequenceδ T n₀ n₁ h = 0

full_name: CategoryTheory.Functor.homologySequence_mono_shift_map_mor₂_iff
code: lemma homologySequence_mono_shift_map_mor₂_iff :
    Mono ((F.shift n₀).map T.mor₂) ↔ (F.shift n₀).map T.mor₁ = 0 
goal: CategoryTheory.Mono ((F.shift n₀).map T.mor₂) ↔ (F.shift n₀).map T.mor₁ = 0

full_name: CategoryTheory.Functor.mem_homologicalKernel_W_iff
code: lemma mem_homologicalKernel_W_iff {X Y : C} (f : X ⟶ Y) :
    F.homologicalKernel.W f ↔ ∀ (n : ℤ), IsIso ((F.shift n).map f) 
goal: F.homologicalKernel.W f ↔ ∀ (n : ℤ), CategoryTheory.IsIso ((F.shift n).map f)

full_name: CategoryTheory.Functor.homologySequenceComposableArrows₅
code: /-- The exact sequence with six terms starting from `(F.shift n₀).obj T.obj₁` until
`(F.shift n₁).obj T.obj₃` when `T` is a distinguished triangle and `F` a homological functor. -/
@[simp] noncomputable def homologySequenceComposableArrows₅ : ComposableArrows A 5 
goal: CategoryTheory.ComposableArrows A 5

full_name: CategoryTheory.Functor.homologySequenceComposableArrows₅_exact
code: lemma homologySequenceComposableArrows₅_exact :
    (F.homologySequenceComposableArrows₅ T n₀ n₁ h).Exact 
goal: (F.homologySequenceComposableArrows₅ T n₀ n₁ h).Exact