Theorem: CategoryTheory.GradedObject.mapTrifunctorMapIso_inv
File: Mathlib/CategoryTheory/GradedObject/Trifunctor.lean

Proof steps:
state_before: C₁ : Type u_1
C₂ : Type u_2
C₃ : Type u_3
C₄ : Type u_4
C₁₂ : Type u_5
C₂₃ : Type u_6
inst✝⁵ : Category.{?u.45682, u_1} C₁
inst✝⁴ : Category.{?u.45686, u_2} C₂
inst✝³ : Category.{?u.45690, u_3} C₃
inst✝² : Category.{?u.45694, u_4} C₄
inst✝¹ : Category.{?u.45698, u_5} C₁₂
inst✝ : Category.{?u.45702, u_6} C₂₃
F F' : C₁ ⥤ C₂ ⥤ C₃ ⥤ C₄
e : F ≅ F'
I₁ : Type u_7
I₂ : Type u_8
I₃ : Type u_9
⊢ mapTrifunctorMapNatTrans e.hom I₁ I₂ I₃ ≫ mapTrifunctorMapNatTrans e.inv I₁ I₂ I₃ = 𝟙 (mapTrifunctor F I₁ I₂ I₃)
state_after: case w.h.w.h.w.h.h.mk.mk
C₁ : Type u_1
C₂ : Type u_2
C₃ : Type u_3
C₄ : Type u_4
C₁₂ : Type u_5
C₂₃ : Type u_6
inst✝⁵ : Category.{?u.45682, u_1} C₁
inst✝⁴ : Category.{?u.45686, u_2} C₂
inst✝³ : Category.{?u.45690, u_3} C₃
inst✝² : Category.{?u.45694, u_4} C₄
inst✝¹ : Category.{?u.45698, u_5} C₁₂
inst✝ : Category.{?u.45702, u_6} C₂₃
F F' : C₁ ⥤ C₂ ⥤ C₃ ⥤ C₄
e : F ≅ F'
I₁ : Type u_7
I₂ : Type u_8
I₃ : Type u_9
X₁ : GradedObject I₁ C₁
X₂ : GradedObject I₂ C₂
X₃ : GradedObject I₃ C₃
i₁ : I₁
i₂ : I₂
i₃ : I₃
⊢ (((mapTrifunctorMapNatTrans e.hom I₁ I₂ I₃ ≫ mapTrifunctorMapNatTrans e.inv I₁ I₂ I₃).app X₁).app X₂).app X₃
      (i₁, i₂, i₃) =
    (((𝟙 (mapTrifunctor F I₁ I₂ I₃)).app X₁).app X₂).app X₃ (i₁, i₂, i₃)
tactic: ext X₁ X₂ X₃ ⟨i₁, i₂, i₃⟩
state_before: case w.h.w.h.w.h.h.mk.mk
C₁ : Type u_1
C₂ : Type u_2
C₃ : Type u_3
C₄ : Type u_4
C₁₂ : Type u_5
C₂₃ : Type u_6
inst✝⁵ : Category.{?u.45682, u_1} C₁
inst✝⁴ : Category.{?u.45686, u_2} C₂
inst✝³ : Category.{?u.45690, u_3} C₃
inst✝² : Category.{?u.45694, u_4} C₄
inst✝¹ : Category.{?u.45698, u_5} C₁₂
inst✝ : Category.{?u.45702, u_6} C₂₃
F F' : C₁ ⥤ C₂ ⥤ C₃ ⥤ C₄
e : F ≅ F'
I₁ : Type u_7
I₂ : Type u_8
I₃ : Type u_9
X₁ : GradedObject I₁ C₁
X₂ : GradedObject I₂ C₂
X₃ : GradedObject I₃ C₃
i₁ : I₁
i₂ : I₂
i₃ : I₃
⊢ (((mapTrifunctorMapNatTrans e.hom I₁ I₂ I₃ ≫ mapTrifunctorMapNatTrans e.inv I₁ I₂ I₃).app X₁).app X₂).app X₃
      (i₁, i₂, i₃) =
    (((𝟙 (mapTrifunctor F I₁ I₂ I₃)).app X₁).app X₂).app X₃ (i₁, i₂, i₃)
state_after: case w.h.w.h.w.h.h.mk.mk
C₁ : Type u_1
C₂ : Type u_2
C₃ : Type u_3
C₄ : Type u_4
C₁₂ : Type u_5
C₂₃ : Type u_6
inst✝⁵ : Category.{?u.45682, u_1} C₁
inst✝⁴ : Category.{?u.45686, u_2} C₂
inst✝³ : Category.{?u.45690, u_3} C₃
inst✝² : Category.{?u.45694, u_4} C₄
inst✝¹ : Category.{?u.45698, u_5} C₁₂
inst✝ : Category.{?u.45702, u_6} C₂₃
F F' : C₁ ⥤ C₂ ⥤ C₃ ⥤ C₄
e : F ≅ F'
I₁ : Type u_7
I₂ : Type u_8
I₃ : Type u_9
X₁ : GradedObject I₁ C₁
X₂ : GradedObject I₂ C₂
X₃ : GradedObject I₃ C₃
i₁ : I₁
i₂ : I₂
i₃ : I₃
⊢ ((e.hom.app (X₁ i₁)).app (X₂ i₂)).app (X₃ i₃) ≫ ((e.inv.app (X₁ i₁)).app (X₂ i₂)).app (X₃ i₃) =
    𝟙 (((F.obj (X₁ i₁)).obj (X₂ i₂)).obj (X₃ i₃))
tactic: dsimp
state_before: case w.h.w.h.w.h.h.mk.mk
C₁ : Type u_1
C₂ : Type u_2
C₃ : Type u_3
C₄ : Type u_4
C₁₂ : Type u_5
C₂₃ : Type u_6
inst✝⁵ : Category.{?u.45682, u_1} C₁
inst✝⁴ : Category.{?u.45686, u_2} C₂
inst✝³ : Category.{?u.45690, u_3} C₃
inst✝² : Category.{?u.45694, u_4} C₄
inst✝¹ : Category.{?u.45698, u_5} C₁₂
inst✝ : Category.{?u.45702, u_6} C₂₃
F F' : C₁ ⥤ C₂ ⥤ C₃ ⥤ C₄
e : F ≅ F'
I₁ : Type u_7
I₂ : Type u_8
I₃ : Type u_9
X₁ : GradedObject I₁ C₁
X₂ : GradedObject I₂ C₂
X₃ : GradedObject I₃ C₃
i₁ : I₁
i₂ : I₂
i₃ : I₃
⊢ ((e.hom.app (X₁ i₁)).app (X₂ i₂)).app (X₃ i₃) ≫ ((e.inv.app (X₁ i₁)).app (X₂ i₂)).app (X₃ i₃) =
    𝟙 (((F.obj (X₁ i₁)).obj (X₂ i₂)).obj (X₃ i₃))
state_after: no goals
tactic: simp only [← NatTrans.comp_app, e.hom_inv_id, NatTrans.id_app]
state_before: C₁ : Type u_1
C₂ : Type u_2
C₃ : Type u_3
C₄ : Type u_4
C₁₂ : Type u_5
C₂₃ : Type u_6
inst✝⁵ : Category.{?u.45682, u_1} C₁
inst✝⁴ : Category.{?u.45686, u_2} C₂
inst✝³ : Category.{?u.45690, u_3} C₃
inst✝² : Category.{?u.45694, u_4} C₄
inst✝¹ : Category.{?u.45698, u_5} C₁₂
inst✝ : Category.{?u.45702, u_6} C₂₃
F F' : C₁ ⥤ C₂ ⥤ C₃ ⥤ C₄
e : F ≅ F'
I₁ : Type u_7
I₂ : Type u_8
I₃ : Type u_9
⊢ mapTrifunctorMapNatTrans e.inv I₁ I₂ I₃ ≫ mapTrifunctorMapNatTrans e.hom I₁ I₂ I₃ = 𝟙 (mapTrifunctor F' I₁ I₂ I₃)
state_after: case w.h.w.h.w.h.h.mk.mk
C₁ : Type u_1
C₂ : Type u_2
C₃ : Type u_3
C₄ : Type u_4
C₁₂ : Type u_5
C₂₃ : Type u_6
inst✝⁵ : Category.{?u.45682, u_1} C₁
inst✝⁴ : Category.{?u.45686, u_2} C₂
inst✝³ : Category.{?u.45690, u_3} C₃
inst✝² : Category.{?u.45694, u_4} C₄
inst✝¹ : Category.{?u.45698, u_5} C₁₂
inst✝ : Category.{?u.45702, u_6} C₂₃
F F' : C₁ ⥤ C₂ ⥤ C₃ ⥤ C₄
e : F ≅ F'
I₁ : Type u_7
I₂ : Type u_8
I₃ : Type u_9
X₁ : GradedObject I₁ C₁
X₂ : GradedObject I₂ C₂
X₃ : GradedObject I₃ C₃
i₁ : I₁
i₂ : I₂
i₃ : I₃
⊢ (((mapTrifunctorMapNatTrans e.inv I₁ I₂ I₃ ≫ mapTrifunctorMapNatTrans e.hom I₁ I₂ I₃).app X₁).app X₂).app X₃
      (i₁, i₂, i₃) =
    (((𝟙 (mapTrifunctor F' I₁ I₂ I₃)).app X₁).app X₂).app X₃ (i₁, i₂, i₃)
tactic: ext X₁ X₂ X₃ ⟨i₁, i₂, i₃⟩
state_before: case w.h.w.h.w.h.h.mk.mk
C₁ : Type u_1
C₂ : Type u_2
C₃ : Type u_3
C₄ : Type u_4
C₁₂ : Type u_5
C₂₃ : Type u_6
inst✝⁵ : Category.{?u.45682, u_1} C₁
inst✝⁴ : Category.{?u.45686, u_2} C₂
inst✝³ : Category.{?u.45690, u_3} C₃
inst✝² : Category.{?u.45694, u_4} C₄
inst✝¹ : Category.{?u.45698, u_5} C₁₂
inst✝ : Category.{?u.45702, u_6} C₂₃
F F' : C₁ ⥤ C₂ ⥤ C₃ ⥤ C₄
e : F ≅ F'
I₁ : Type u_7
I₂ : Type u_8
I₃ : Type u_9
X₁ : GradedObject I₁ C₁
X₂ : GradedObject I₂ C₂
X₃ : GradedObject I₃ C₃
i₁ : I₁
i₂ : I₂
i₃ : I₃
⊢ (((mapTrifunctorMapNatTrans e.inv I₁ I₂ I₃ ≫ mapTrifunctorMapNatTrans e.hom I₁ I₂ I₃).app X₁).app X₂).app X₃
      (i₁, i₂, i₃) =
    (((𝟙 (mapTrifunctor F' I₁ I₂ I₃)).app X₁).app X₂).app X₃ (i₁, i₂, i₃)
state_after: case w.h.w.h.w.h.h.mk.mk
C₁ : Type u_1
C₂ : Type u_2
C₃ : Type u_3
C₄ : Type u_4
C₁₂ : Type u_5
C₂₃ : Type u_6
inst✝⁵ : Category.{?u.45682, u_1} C₁
inst✝⁴ : Category.{?u.45686, u_2} C₂
inst✝³ : Category.{?u.45690, u_3} C₃
inst✝² : Category.{?u.45694, u_4} C₄
inst✝¹ : Category.{?u.45698, u_5} C₁₂
inst✝ : Category.{?u.45702, u_6} C₂₃
F F' : C₁ ⥤ C₂ ⥤ C₃ ⥤ C₄
e : F ≅ F'
I₁ : Type u_7
I₂ : Type u_8
I₃ : Type u_9
X₁ : GradedObject I₁ C₁
X₂ : GradedObject I₂ C₂
X₃ : GradedObject I₃ C₃
i₁ : I₁
i₂ : I₂
i₃ : I₃
⊢ ((e.inv.app (X₁ i₁)).app (X₂ i₂)).app (X₃ i₃) ≫ ((e.hom.app (X₁ i₁)).app (X₂ i₂)).app (X₃ i₃) =
    𝟙 (((F'.obj (X₁ i₁)).obj (X₂ i₂)).obj (X₃ i₃))
tactic: dsimp
state_before: case w.h.w.h.w.h.h.mk.mk
C₁ : Type u_1
C₂ : Type u_2
C₃ : Type u_3
C₄ : Type u_4
C₁₂ : Type u_5
C₂₃ : Type u_6
inst✝⁵ : Category.{?u.45682, u_1} C₁
inst✝⁴ : Category.{?u.45686, u_2} C₂
inst✝³ : Category.{?u.45690, u_3} C₃
inst✝² : Category.{?u.45694, u_4} C₄
inst✝¹ : Category.{?u.45698, u_5} C₁₂
inst✝ : Category.{?u.45702, u_6} C₂₃
F F' : C₁ ⥤ C₂ ⥤ C₃ ⥤ C₄
e : F ≅ F'
I₁ : Type u_7
I₂ : Type u_8
I₃ : Type u_9
X₁ : GradedObject I₁ C₁
X₂ : GradedObject I₂ C₂
X₃ : GradedObject I₃ C₃
i₁ : I₁
i₂ : I₂
i₃ : I₃
⊢ ((e.inv.app (X₁ i₁)).app (X₂ i₂)).app (X₃ i₃) ≫ ((e.hom.app (X₁ i₁)).app (X₂ i₂)).app (X₃ i₃) =
    𝟙 (((F'.obj (X₁ i₁)).obj (X₂ i₂)).obj (X₃ i₃))
state_after: no goals
tactic: simp only [← NatTrans.comp_app, e.inv_hom_id, NatTrans.id_app]