Theorem: CategoryTheory.Triangulated.Subcategory.mem_W_iff_of_distinguished
File: Mathlib/CategoryTheory/Triangulated/Subcategory.lean

tactic: constructor
state_before: C : Type u_1
inst✝⁶ : Category.{u_2, u_1} C
inst✝⁵ : HasZeroObject C
inst✝⁴ : HasShift C ℤ
inst✝³ : Preadditive C
inst✝² : ∀ (n : ℤ), (shiftFunctor C n).Additive
inst✝¹ : Pretriangulated C
S : Subcategory C
inst✝ : ClosedUnderIsomorphisms S.P
T : Triangle C
hT : T ∈ distinguishedTriangles
⊢ S.W T.mor₁ ↔ S.P T.obj₃
state_after: case mp
C : Type u_1
inst✝⁶ : Category.{u_2, u_1} C
inst✝⁵ : HasZeroObject C
inst✝⁴ : HasShift C ℤ
inst✝³ : Preadditive C
inst✝² : ∀ (n : ℤ), (shiftFunctor C n).Additive
inst✝¹ : Pretriangulated C
S : Subcategory C
inst✝ : ClosedUnderIsomorphisms S.P
T : Triangle C
hT : T ∈ distinguishedTriangles
⊢ S.W T.mor₁ → S.P T.obj₃

case mpr
C : Type u_1
inst✝⁶ : Category.{u_2, u_1} C
inst✝⁵ : HasZeroObject C
inst✝⁴ : HasShift C ℤ
inst✝³ : Preadditive C
inst✝² : ∀ (n : ℤ), (shiftFunctor C n).Additive
inst✝¹ : Pretriangulated C
S : Subcategory C
inst✝ : ClosedUnderIsomorphisms S.P
T : Triangle C
hT : T ∈ distinguishedTriangles
⊢ S.P T.obj₃ → S.W T.mor₁

tactic: rintro ⟨Z, g, h, hT', mem⟩
state_before: case mp
C : Type u_1
inst✝⁶ : Category.{u_2, u_1} C
inst✝⁵ : HasZeroObject C
inst✝⁴ : HasShift C ℤ
inst✝³ : Preadditive C
inst✝² : ∀ (n : ℤ), (shiftFunctor C n).Additive
inst✝¹ : Pretriangulated C
S : Subcategory C
inst✝ : ClosedUnderIsomorphisms S.P
T : Triangle C
hT : T ∈ distinguishedTriangles
⊢ S.W T.mor₁ → S.P T.obj₃
state_after: case mp.intro.intro.intro.intro
C : Type u_1
inst✝⁶ : Category.{u_2, u_1} C
inst✝⁵ : HasZeroObject C
inst✝⁴ : HasShift C ℤ
inst✝³ : Preadditive C
inst✝² : ∀ (n : ℤ), (shiftFunctor C n).Additive
inst✝¹ : Pretriangulated C
S : Subcategory C
inst✝ : ClosedUnderIsomorphisms S.P
T : Triangle C
hT : T ∈ distinguishedTriangles
Z : C
g : T.obj₂ ⟶ Z
h : Z ⟶ (shiftFunctor C 1).obj T.obj₁
hT' : Triangle.mk T.mor₁ g h ∈ distinguishedTriangles
mem : S.P Z
⊢ S.P T.obj₃

tactic: obtain ⟨e, _⟩ := exists_iso_of_arrow_iso _ _ hT' hT (Iso.refl _)
state_before: case mp.intro.intro.intro.intro
C : Type u_1
inst✝⁶ : Category.{u_2, u_1} C
inst✝⁵ : HasZeroObject C
inst✝⁴ : HasShift C ℤ
inst✝³ : Preadditive C
inst✝² : ∀ (n : ℤ), (shiftFunctor C n).Additive
inst✝¹ : Pretriangulated C
S : Subcategory C
inst✝ : ClosedUnderIsomorphisms S.P
T : Triangle C
hT : T ∈ distinguishedTriangles
Z : C
g : T.obj₂ ⟶ Z
h : Z ⟶ (shiftFunctor C 1).obj T.obj₁
hT' : Triangle.mk T.mor₁ g h ∈ distinguishedTriangles
mem : S.P Z
⊢ S.P T.obj₃
state_after: case mp.intro.intro.intro.intro.intro
C : Type u_1
inst✝⁶ : Category.{u_2, u_1} C
inst✝⁵ : HasZeroObject C
inst✝⁴ : HasShift C ℤ
inst✝³ : Preadditive C
inst✝² : ∀ (n : ℤ), (shiftFunctor C n).Additive
inst✝¹ : Pretriangulated C
S : Subcategory C
inst✝ : ClosedUnderIsomorphisms S.P
T : Triangle C
hT : T ∈ distinguishedTriangles
Z : C
g : T.obj₂ ⟶ Z
h : Z ⟶ (shiftFunctor C 1).obj T.obj₁
hT' : Triangle.mk T.mor₁ g h ∈ distinguishedTriangles
mem : S.P Z
e : Triangle.mk T.mor₁ g h ≅ T
h✝ :
  e.hom.hom₁ = (Iso.refl (Arrow.mk (Triangle.mk T.mor₁ g h).mor₁)).hom.left ∧
    e.hom.hom₂ = (Iso.refl (Arrow.mk (Triangle.mk T.mor₁ g h).mor₁)).hom.right
⊢ S.P T.obj₃

tactic: exact mem_of_iso S.P (Triangle.π₃.mapIso e) mem
state_before: case mp.intro.intro.intro.intro.intro
C : Type u_1
inst✝⁶ : Category.{u_2, u_1} C
inst✝⁵ : HasZeroObject C
inst✝⁴ : HasShift C ℤ
inst✝³ : Preadditive C
inst✝² : ∀ (n : ℤ), (shiftFunctor C n).Additive
inst✝¹ : Pretriangulated C
S : Subcategory C
inst✝ : ClosedUnderIsomorphisms S.P
T : Triangle C
hT : T ∈ distinguishedTriangles
Z : C
g : T.obj₂ ⟶ Z
h : Z ⟶ (shiftFunctor C 1).obj T.obj₁
hT' : Triangle.mk T.mor₁ g h ∈ distinguishedTriangles
mem : S.P Z
e : Triangle.mk T.mor₁ g h ≅ T
h✝ :
  e.hom.hom₁ = (Iso.refl (Arrow.mk (Triangle.mk T.mor₁ g h).mor₁)).hom.left ∧
    e.hom.hom₂ = (Iso.refl (Arrow.mk (Triangle.mk T.mor₁ g h).mor₁)).hom.right
⊢ S.P T.obj₃
state_after: no goals

tactic: intro h
state_before: case mpr
C : Type u_1
inst✝⁶ : Category.{u_2, u_1} C
inst✝⁵ : HasZeroObject C
inst✝⁴ : HasShift C ℤ
inst✝³ : Preadditive C
inst✝² : ∀ (n : ℤ), (shiftFunctor C n).Additive
inst✝¹ : Pretriangulated C
S : Subcategory C
inst✝ : ClosedUnderIsomorphisms S.P
T : Triangle C
hT : T ∈ distinguishedTriangles
⊢ S.P T.obj₃ → S.W T.mor₁
state_after: case mpr
C : Type u_1
inst✝⁶ : Category.{u_2, u_1} C
inst✝⁵ : HasZeroObject C
inst✝⁴ : HasShift C ℤ
inst✝³ : Preadditive C
inst✝² : ∀ (n : ℤ), (shiftFunctor C n).Additive
inst✝¹ : Pretriangulated C
S : Subcategory C
inst✝ : ClosedUnderIsomorphisms S.P
T : Triangle C
hT : T ∈ distinguishedTriangles
h : S.P T.obj₃
⊢ S.W T.mor₁

tactic: exact ⟨_, _, _, hT, h⟩
state_before: case mpr
C : Type u_1
inst✝⁶ : Category.{u_2, u_1} C
inst✝⁵ : HasZeroObject C
inst✝⁴ : HasShift C ℤ
inst✝³ : Preadditive C
inst✝² : ∀ (n : ℤ), (shiftFunctor C n).Additive
inst✝¹ : Pretriangulated C
S : Subcategory C
inst✝ : ClosedUnderIsomorphisms S.P
T : Triangle C
hT : T ∈ distinguishedTriangles
h : S.P T.obj₃
⊢ S.W T.mor₁
state_after: no goals