File: Mathlib/CategoryTheory/Localization/Triangulated.lean

full_name: CategoryTheory.MorphismProperty.IsCompatibleWithTriangulation.compatible_with_triangulation
code: /-- Given `W` is a class of morphisms in a pretriangulated category `C`, this is the condition
that `W` is compatible with the triangulation on `C`. -/
class IsCompatibleWithTriangulation (W : MorphismProperty C)
    extends W.IsCompatibleWithShift ℤ : Prop where
  compatible_with_triangulation (T₁ T₂ : Triangle C)
    (_ : T₁ ∈ distTriang C) (_ : T₂ ∈ distTriang C)
    (a : T₁.obj₁ ⟶ T₂.obj₁) (b : T₁.obj₂ ⟶ T₂.obj₂) (_ : W a) (_ : W b)
    (_ : T₁.mor₁ ≫ b = a ≫ T₂.mor₁) :
      ∃ (c : T₁.obj₃ ⟶ T₂.obj₃) (_ : W c),
        (T₁.mor₂ ≫ c = b ≫ T₂.mor₂) ∧ (T₁.mor₃ ≫ a⟦1⟧' = c ≫ T₂.mor₃)
goal: T₁ ∈ CategoryTheory.Pretriangulated.distinguishedTriangles →
  T₂ ∈ CategoryTheory.Pretriangulated.distinguishedTriangles →
    ∀ (a : T₁.obj₁ ⟶ T₂.obj₁) (b : T₁.obj₂ ⟶ T₂.obj₂),
      W a →
        W b →
          CategoryTheory.CategoryStruct.comp T₁.mor₁ b = CategoryTheory.CategoryStruct.comp a T₂.mor₁ →
            ∃ c,
              ∃ (_ : W c),
                CategoryTheory.CategoryStruct.comp T₁.mor₂ c = CategoryTheory.CategoryStruct.comp b T₂.mor₂ ∧
                  CategoryTheory.CategoryStruct.comp T₁.mor₃ ((CategoryTheory.shiftFunctor C 1).map a) =
                    CategoryTheory.CategoryStruct.comp c T₂.mor₃

full_name: CategoryTheory.MorphismProperty.IsCompatibleWithTriangulation
code: /-- Given `W` is a class of morphisms in a pretriangulated category `C`, this is the condition
that `W` is compatible with the triangulation on `C`. -/
class IsCompatibleWithTriangulation (W : MorphismProperty C)
    extends W.IsCompatibleWithShift ℤ : Prop where
  compatible_with_triangulation (T₁ T₂ : Triangle C)
    (_ : T₁ ∈ distTriang C) (_ : T₂ ∈ distTriang C)
    (a : T₁.obj₁ ⟶ T₂.obj₁) (b : T₁.obj₂ ⟶ T₂.obj₂) (_ : W a) (_ : W b)
    (_ : T₁.mor₁ ≫ b = a ≫ T₂.mor₁) :
      ∃ (c : T₁.obj₃ ⟶ T₂.obj₃) (_ : W c),
        (T₁.mor₂ ≫ c = b ≫ T₂.mor₂) ∧ (T₁.mor₃ ≫ a⟦1⟧' = c ≫ T₂.mor₃)
goal: Prop

full_name: CategoryTheory.Functor.essImageDistTriang
code: /-- Given a functor `C ⥤ D` from a pretriangulated category, this is the set of
triangles in `D` that are in the essential image of distinguished triangles of `C`. -/
def essImageDistTriang : Set (Triangle D) 
goal: Set (CategoryTheory.Pretriangulated.Triangle D)

full_name: CategoryTheory.Functor.essImageDistTriang_mem_of_iso
code: lemma essImageDistTriang_mem_of_iso {T₁ T₂ : Triangle D} (e : T₂ ≅ T₁)
    (h : T₁ ∈ L.essImageDistTriang) : T₂ ∈ L.essImageDistTriang 
goal: T₂ ∈ L.essImageDistTriang

full_name: CategoryTheory.Functor.contractible_mem_essImageDistTriang
code: lemma contractible_mem_essImageDistTriang [EssSurj L] [HasZeroObject D]
    [HasZeroMorphisms D] [L.PreservesZeroMorphisms] (X : D) :
    contractibleTriangle X ∈ L.essImageDistTriang 
goal: CategoryTheory.Pretriangulated.contractibleTriangle X ∈ L.essImageDistTriang

full_name: CategoryTheory.Functor.rotate_essImageDistTriang
code: lemma rotate_essImageDistTriang [Preadditive D] [L.Additive]
    [∀ (n : ℤ), (shiftFunctor D n).Additive] (T : Triangle D) :
  T ∈ L.essImageDistTriang ↔ T.rotate ∈ L.essImageDistTriang 
goal: T ∈ L.essImageDistTriang ↔ T.rotate ∈ L.essImageDistTriang

full_name: CategoryTheory.Functor.complete_distinguished_essImageDistTriang_morphism
code: lemma complete_distinguished_essImageDistTriang_morphism
    (H : ∀ (T₁' T₂' : Triangle C) (_ : T₁' ∈ distTriang C) (_ : T₂' ∈ distTriang C)
      (a : L.obj (T₁'.obj₁) ⟶ L.obj (T₂'.obj₁)) (b : L.obj (T₁'.obj₂) ⟶ L.obj (T₂'.obj₂))
      (_ : L.map T₁'.mor₁ ≫ b = a ≫ L.map T₂'.mor₁),
      ∃ (φ : L.mapTriangle.obj T₁' ⟶ L.mapTriangle.obj T₂'), φ.hom₁ = a ∧ φ.hom₂ = b)
    (T₁ T₂ : Triangle D)
    (hT₁ : T₁ ∈ Functor.essImageDistTriang L) (hT₂ : T₂ ∈ L.essImageDistTriang)
    (a : T₁.obj₁ ⟶ T₂.obj₁) (b : T₁.obj₂ ⟶ T₂.obj₂) (fac : T₁.mor₁ ≫ b = a ≫ T₂.mor₁) :
    ∃ c, T₁.mor₂ ≫ c = b ≫ T₂.mor₂ ∧ T₁.mor₃ ≫ a⟦1⟧' = c ≫ T₂.mor₃ 
goal: ∃ c,
  CategoryTheory.CategoryStruct.comp T₁.mor₂ c = CategoryTheory.CategoryStruct.comp b T₂.mor₂ ∧
    CategoryTheory.CategoryStruct.comp T₁.mor₃ ((CategoryTheory.shiftFunctor D 1).map a) =
      CategoryTheory.CategoryStruct.comp c T₂.mor₃

full_name: CategoryTheory.Triangulated.Localization.distinguished_cocone_triangle
code: lemma distinguished_cocone_triangle {X Y : D} (f : X ⟶ Y) :
    ∃ (Z : D) (g : Y ⟶ Z) (h : Z ⟶ X⟦(1 : ℤ)⟧),
      Triangle.mk f g h ∈ L.essImageDistTriang 
goal: ∃ Z g h, CategoryTheory.Pretriangulated.Triangle.mk f g h ∈ L.essImageDistTriang

full_name: CategoryTheory.Triangulated.Localization.complete_distinguished_triangle_morphism
code: lemma complete_distinguished_triangle_morphism (T₁ T₂ : Triangle D)
    (hT₁ : T₁ ∈ L.essImageDistTriang) (hT₂ : T₂ ∈ L.essImageDistTriang)
    (a : T₁.obj₁ ⟶ T₂.obj₁) (b : T₁.obj₂ ⟶ T₂.obj₂) (fac : T₁.mor₁ ≫ b = a ≫ T₂.mor₁) :
    ∃ c, T₁.mor₂ ≫ c = b ≫ T₂.mor₂ ∧ T₁.mor₃ ≫ a⟦1⟧' = c ≫ T₂.mor₃ 
goal: ∃ c,
  CategoryTheory.CategoryStruct.comp T₁.mor₂ c = CategoryTheory.CategoryStruct.comp b T₂.mor₂ ∧
    CategoryTheory.CategoryStruct.comp T₁.mor₃ ((CategoryTheory.shiftFunctor D 1).map a) =
      CategoryTheory.CategoryStruct.comp c T₂.mor₃

full_name: CategoryTheory.Triangulated.Localization.pretriangulated
code: /-- The pretriangulated structure on the localized category. -/
def pretriangulated : Pretriangulated D 
goal: CategoryTheory.Pretriangulated D

full_name: CategoryTheory.Triangulated.Localization.isTriangulated_functor
code: instance isTriangulated_functor :
    letI : Pretriangulated D := pretriangulated L W; L.IsTriangulated 
goal: L.IsTriangulated

full_name: CategoryTheory.Triangulated.Localization.isTriangulated
code: lemma isTriangulated [Pretriangulated D] [L.IsTriangulated] [IsTriangulated C] :
    IsTriangulated D 
goal: CategoryTheory.IsTriangulated D

full_name: CategoryTheory.Triangulated.Localization.instAdditiveLocalizationShiftFunctorInt
code: instance (n : ℤ) : (shiftFunctor (W.Localization) n).Additive 
goal: (CategoryTheory.shiftFunctor W.Localization n).Additive

full_name: CategoryTheory.Triangulated.Localization.instPretriangulatedLocalization
code: instance : Pretriangulated W.Localization 
goal: CategoryTheory.Pretriangulated W.Localization

full_name: CategoryTheory.Triangulated.Localization.instIsTriangulatedLocalization
code: instance [IsTriangulated C] : IsTriangulated W.Localization 
goal: CategoryTheory.IsTriangulated W.Localization

full_name: CategoryTheory.Triangulated.Localization.instAdditiveLocalization'ShiftFunctorInt
code: instance (n : ℤ) : (shiftFunctor (W.Localization') n).Additive 
goal: (CategoryTheory.shiftFunctor W.Localization' n).Additive

full_name: CategoryTheory.Triangulated.Localization.instPretriangulatedLocalization'
code: instance : Pretriangulated W.Localization' 
goal: CategoryTheory.Pretriangulated W.Localization'

full_name: CategoryTheory.Triangulated.Localization.instIsTriangulatedLocalization'
code: instance [IsTriangulated C] : IsTriangulated W.Localization' 
goal: CategoryTheory.IsTriangulated W.Localization'

full_name: CategoryTheory.Functor.distTriang_iff
code: lemma distTriang_iff (T : Triangle D) :
    (T ∈ distTriang D) ↔ T ∈ L.essImageDistTriang 
goal: T ∈ CategoryTheory.Pretriangulated.distinguishedTriangles ↔ T ∈ L.essImageDistTriang