File: Mathlib/CategoryTheory/Triangulated/Subcategory.lean

full_name: CategoryTheory.Triangulated.Subcategory
code: /-- A triangulated subcategory of a pretriangulated category `C` consists of
a predicate `P : C → Prop` which contains a zero object, is stable by shifts, and such that
if `X₁ ⟶ X₂ ⟶ X₃ ⟶ X₁⟦1⟧` is a distinguished triangle such that if `X₁` and `X₃` satisfy
`P` then `X₂` is isomorphic to an object satisfying `P`. -/
structure Subcategory where
  /-- the underlying predicate on objects of a triangulated subcategory -/
  P : C → Prop
  zero' : ∃ (Z : C) (_ : IsZero Z), P Z
  shift (X : C) (n : ℤ) : P X → P (X⟦n⟧)
  ext₂' (T : Triangle C) (_ : T ∈ distTriang C) : P T.obj₁ → P T.obj₃ → isoClosure P T.obj₂
goal: Type u_1

full_name: CategoryTheory.Triangulated.Subcategory.ext₂'
code: /-- A triangulated subcategory of a pretriangulated category `C` consists of
a predicate `P : C → Prop` which contains a zero object, is stable by shifts, and such that
if `X₁ ⟶ X₂ ⟶ X₃ ⟶ X₁⟦1⟧` is a distinguished triangle such that if `X₁` and `X₃` satisfy
`P` then `X₂` is isomorphic to an object satisfying `P`. -/
structure Subcategory where
  /-- the underlying predicate on objects of a triangulated subcategory -/
  P : C → Prop
  zero' : ∃ (Z : C) (_ : IsZero Z), P Z
  shift (X : C) (n : ℤ) : P X → P (X⟦n⟧)
  ext₂' (T : Triangle C) (_ : T ∈ distTriang C) : P T.obj₁ → P T.obj₃ → isoClosure P T.obj₂
goal: T ∈ CategoryTheory.Pretriangulated.distinguishedTriangles →
  self.P T.obj₁ → self.P T.obj₃ → CategoryTheory.isoClosure self.P T.obj₂

full_name: CategoryTheory.Triangulated.Subcategory.shift
code: /-- A triangulated subcategory of a pretriangulated category `C` consists of
a predicate `P : C → Prop` which contains a zero object, is stable by shifts, and such that
if `X₁ ⟶ X₂ ⟶ X₃ ⟶ X₁⟦1⟧` is a distinguished triangle such that if `X₁` and `X₃` satisfy
`P` then `X₂` is isomorphic to an object satisfying `P`. -/
structure Subcategory where
  /-- the underlying predicate on objects of a triangulated subcategory -/
  P : C → Prop
  zero' : ∃ (Z : C) (_ : IsZero Z), P Z
  shift (X : C) (n : ℤ) : P X → P (X⟦n⟧)
  ext₂' (T : Triangle C) (_ : T ∈ distTriang C) : P T.obj₁ → P T.obj₃ → isoClosure P T.obj₂
goal: self.P X → self.P ((CategoryTheory.shiftFunctor C n).obj X)

full_name: CategoryTheory.Triangulated.Subcategory.zero'
code: /-- A triangulated subcategory of a pretriangulated category `C` consists of
a predicate `P : C → Prop` which contains a zero object, is stable by shifts, and such that
if `X₁ ⟶ X₂ ⟶ X₃ ⟶ X₁⟦1⟧` is a distinguished triangle such that if `X₁` and `X₃` satisfy
`P` then `X₂` is isomorphic to an object satisfying `P`. -/
structure Subcategory where
  /-- the underlying predicate on objects of a triangulated subcategory -/
  P : C → Prop
  zero' : ∃ (Z : C) (_ : IsZero Z), P Z
  shift (X : C) (n : ℤ) : P X → P (X⟦n⟧)
  ext₂' (T : Triangle C) (_ : T ∈ distTriang C) : P T.obj₁ → P T.obj₃ → isoClosure P T.obj₂
goal: ∃ Z, ∃ (_ : CategoryTheory.Limits.IsZero Z), self.P Z

full_name: CategoryTheory.Triangulated.Subcategory.P
code: /-- A triangulated subcategory of a pretriangulated category `C` consists of
a predicate `P : C → Prop` which contains a zero object, is stable by shifts, and such that
if `X₁ ⟶ X₂ ⟶ X₃ ⟶ X₁⟦1⟧` is a distinguished triangle such that if `X₁` and `X₃` satisfy
`P` then `X₂` is isomorphic to an object satisfying `P`. -/
structure Subcategory where
  /-- the underlying predicate on objects of a triangulated subcategory -/
  P : C → Prop
  zero' : ∃ (Z : C) (_ : IsZero Z), P Z
  shift (X : C) (n : ℤ) : P X → P (X⟦n⟧)
  ext₂' (T : Triangle C) (_ : T ∈ distTriang C) : P T.obj₁ → P T.obj₃ → isoClosure P T.obj₂
goal: C → Prop

full_name: CategoryTheory.Triangulated.Subcategory.zero
code: lemma zero [ClosedUnderIsomorphisms S.P] : S.P 0 
goal: S.P 0

full_name: CategoryTheory.Triangulated.Subcategory.isoClosure
code: /-- The closure under isomorphisms of a triangulated subcategory. -/
def isoClosure : Subcategory C 
goal: CategoryTheory.Triangulated.Subcategory C

full_name: CategoryTheory.Triangulated.Subcategory.instClosedUnderIsomorphismsPIsoClosure
code: instance : ClosedUnderIsomorphisms S.isoClosure.P 
goal: CategoryTheory.ClosedUnderIsomorphisms S.isoClosure.P

full_name: CategoryTheory.Triangulated.Subcategory.mk'
code: /-- An alternative constructor for "strictly full" triangulated subcategory. -/
def mk' : Subcategory C 
goal: CategoryTheory.Triangulated.Subcategory C

full_name: CategoryTheory.Triangulated.Subcategory.instClosedUnderIsomorphismsPMk'
code: instance : ClosedUnderIsomorphisms (mk' P zero shift ext₂).P 
goal: CategoryTheory.ClosedUnderIsomorphisms (CategoryTheory.Triangulated.Subcategory.mk' P zero shift ext₂).P

full_name: CategoryTheory.Triangulated.Subcategory.ext₂
code: lemma ext₂ [ClosedUnderIsomorphisms S.P]
    (T : Triangle C) (hT : T ∈ distTriang C) (h₁ : S.P T.obj₁)
    (h₃ : S.P T.obj₃) : S.P T.obj₂ 
goal: S.P T.obj₂

full_name: CategoryTheory.Triangulated.Subcategory.W
code: /-- Given `S : Triangulated.Subcategory C`, this is the class of morphisms on `C` which
consists of morphisms whose cone satisfies `S.P`. -/
def W : MorphismProperty C 
goal: CategoryTheory.MorphismProperty C

full_name: CategoryTheory.Triangulated.Subcategory.W_iff
code: lemma W_iff {X Y : C} (f : X ⟶ Y) :
    S.W f ↔ ∃ (Z : C) (g : Y ⟶ Z) (h : Z ⟶ X⟦(1 : ℤ)⟧)
      (_ : Triangle.mk f g h ∈ distTriang C), S.P Z 
goal: S.W f ↔
  ∃ Z g h,
    ∃ (_ : CategoryTheory.Pretriangulated.Triangle.mk f g h ∈ CategoryTheory.Pretriangulated.distinguishedTriangles),
      S.P Z

full_name: CategoryTheory.Triangulated.Subcategory.W_iff'
code: lemma W_iff' {Y Z : C} (g : Y ⟶ Z) :
    S.W g ↔ ∃ (X : C) (f : X ⟶ Y) (h : Z ⟶ X⟦(1 : ℤ)⟧)
      (_ : Triangle.mk f g h ∈ distTriang C), S.P X 
goal: S.W g ↔
  ∃ X f h,
    ∃ (_ : CategoryTheory.Pretriangulated.Triangle.mk f g h ∈ CategoryTheory.Pretriangulated.distinguishedTriangles),
      S.P X

full_name: CategoryTheory.Triangulated.Subcategory.W.mk
code: lemma W.mk {T : Triangle C} (hT : T ∈ distTriang C) (h : S.P T.obj₃) : S.W T.mor₁ 
goal: S.W T.mor₁

full_name: CategoryTheory.Triangulated.Subcategory.W.mk'
code: lemma W.mk' {T : Triangle C} (hT : T ∈ distTriang C) (h : S.P T.obj₁) : S.W T.mor₂ 
goal: S.W T.mor₂

full_name: CategoryTheory.Triangulated.Subcategory.isoClosure_W
code: lemma isoClosure_W : S.isoClosure.W = S.W 
goal: S.isoClosure.W = S.W

full_name: CategoryTheory.Triangulated.Subcategory.respectsIso_W
code: instance respectsIso_W : S.W.RespectsIso 
goal: S.W.RespectsIso

full_name: CategoryTheory.Triangulated.Subcategory.instContainsIdentitiesW
code: instance : S.W.ContainsIdentities 
goal: S.W.ContainsIdentities

full_name: CategoryTheory.Triangulated.Subcategory.W_of_isIso
code: lemma W_of_isIso {X Y : C} (f : X ⟶ Y) [IsIso f] : S.W f 
goal: S.W f

full_name: CategoryTheory.Triangulated.Subcategory.smul_mem_W_iff
code: lemma smul_mem_W_iff {X Y : C} (f : X ⟶ Y) (n : ℤˣ) :
    S.W (n • f) ↔ S.W f 
goal: S.W (n • f) ↔ S.W f

full_name: CategoryTheory.Triangulated.Subcategory.W.shift
code: lemma W.shift {X₁ X₂ : C} {f : X₁ ⟶ X₂} (hf : S.W f) (n : ℤ) : S.W (f⟦n⟧') 
goal: S.W ((CategoryTheory.shiftFunctor C n).map f)

full_name: CategoryTheory.Triangulated.Subcategory.W.unshift
code: lemma W.unshift {X₁ X₂ : C} {f : X₁ ⟶ X₂} {n : ℤ} (hf : S.W (f⟦n⟧')) : S.W f 
goal: S.W f

full_name: CategoryTheory.Triangulated.Subcategory.instIsCompatibleWithShiftWInt
code: instance : S.W.IsCompatibleWithShift ℤ 
goal: S.W.IsCompatibleWithShift ℤ

full_name: CategoryTheory.Triangulated.Subcategory.instIsMultiplicativeWOfIsTriangulated
code: instance [IsTriangulated C] : S.W.IsMultiplicative 
goal: S.W.IsMultiplicative

full_name: CategoryTheory.Triangulated.Subcategory.mem_W_iff_of_distinguished
code: lemma mem_W_iff_of_distinguished
    [ClosedUnderIsomorphisms S.P] (T : Triangle C) (hT : T ∈ distTriang C) :
    S.W T.mor₁ ↔ S.P T.obj₃ 
goal: S.W T.mor₁ ↔ S.P T.obj₃

full_name: CategoryTheory.Triangulated.Subcategory.instHasLeftCalculusOfFractionsWOfIsTriangulated
code: instance [IsTriangulated C] : S.W.HasLeftCalculusOfFractions 
goal: S.W.HasLeftCalculusOfFractions

full_name: CategoryTheory.Triangulated.Subcategory.instHasRightCalculusOfFractionsWOfIsTriangulated
code: instance [IsTriangulated C] : S.W.HasRightCalculusOfFractions 
goal: S.W.HasRightCalculusOfFractions

full_name: CategoryTheory.Triangulated.Subcategory.instIsCompatibleWithTriangulationWOfIsTriangulated
code: instance [IsTriangulated C] : S.W.IsCompatibleWithTriangulation 
goal: S.W.IsCompatibleWithTriangulation

full_name: CategoryTheory.Triangulated.Subcategory.ext₁
code: lemma ext₁ [ClosedUnderIsomorphisms S.P] (h₂ : S.P T.obj₂) (h₃ : S.P T.obj₃) :
    S.P T.obj₁ 
goal: S.P T.obj₁

full_name: CategoryTheory.Triangulated.Subcategory.ext₃
code: lemma ext₃ [ClosedUnderIsomorphisms S.P] (h₁ : S.P T.obj₁) (h₂ : S.P T.obj₂) :
    S.P T.obj₃ 
goal: S.P T.obj₃

full_name: CategoryTheory.Triangulated.Subcategory.ext₁'
code: lemma ext₁' (h₂ : S.P T.obj₂) (h₃ : S.P T.obj₃) :
    CategoryTheory.isoClosure S.P T.obj₁ 
goal: CategoryTheory.isoClosure S.P T.obj₁

full_name: CategoryTheory.Triangulated.Subcategory.ext₃'
code: lemma ext₃' (h₁ : S.P T.obj₁) (h₂ : S.P T.obj₂) :
    CategoryTheory.isoClosure S.P T.obj₃ 
goal: CategoryTheory.isoClosure S.P T.obj₃