Theorem: CategoryTheory.rightAdjointSquare.comp_hvcomp
File: Mathlib/CategoryTheory/Adjunction/Mates.lean

Proof steps:
state_before: A : Type u₁
B : Type u₂
C : Type u₃
D : Type u₄
E : Type u₅
F : Type u₆
X : Type u₇
Y : Type u₈
Z : Type u₉
inst✝⁸ : Category.{v₁, u₁} A
inst✝⁷ : Category.{v₂, u₂} B
inst✝⁶ : Category.{v₃, u₃} C
inst✝⁵ : Category.{v₄, u₄} D
inst✝⁴ : Category.{v₅, u₅} E
inst✝³ : Category.{v₆, u₆} F
inst✝² : Category.{v₇, u₇} X
inst✝¹ : Category.{v₈, u₈} Y
inst✝ : Category.{v₉, u₉} Z
G₁ : A ⥤ D
H₁ : B ⥤ E
K₁ : C ⥤ F
G₂ : D ⥤ X
H₂ : E ⥤ Y
K₂ : F ⥤ Z
L₁ : A ⥤ B
R₁ : B ⥤ A
L₂ : B ⥤ C
R₂ : C ⥤ B
L₃ : D ⥤ E
R₃ : E ⥤ D
L₄ : E ⥤ F
R₄ : F ⥤ E
L₅ : X ⥤ Y
R₅ : Y ⥤ X
L₆ : Y ⥤ Z
R₆ : Z ⥤ Y
adj₁ : L₁ ⊣ R₁
adj₂ : L₂ ⊣ R₂
adj₃ : L₃ ⊣ R₃
adj₄ : L₄ ⊣ R₄
adj₅ : L₅ ⊣ R₅
adj₆ : L₆ ⊣ R₆
α : R₁ ⋙ G₁ ⟶ H₁ ⋙ R₃
β : R₂ ⋙ H₁ ⟶ K₁ ⋙ R₄
γ : R₃ ⋙ G₂ ⟶ H₂ ⋙ R₅
δ : R₄ ⋙ H₂ ⟶ K₂ ⋙ R₆
⊢ comp α β γ δ = hcomp (vcomp α γ) (vcomp β δ)
state_after: A : Type u₁
B : Type u₂
C : Type u₃
D : Type u₄
E : Type u₅
F : Type u₆
X : Type u₇
Y : Type u₈
Z : Type u₉
inst✝⁸ : Category.{v₁, u₁} A
inst✝⁷ : Category.{v₂, u₂} B
inst✝⁶ : Category.{v₃, u₃} C
inst✝⁵ : Category.{v₄, u₄} D
inst✝⁴ : Category.{v₅, u₅} E
inst✝³ : Category.{v₆, u₆} F
inst✝² : Category.{v₇, u₇} X
inst✝¹ : Category.{v₈, u₈} Y
inst✝ : Category.{v₉, u₉} Z
G₁ : A ⥤ D
H₁ : B ⥤ E
K₁ : C ⥤ F
G₂ : D ⥤ X
H₂ : E ⥤ Y
K₂ : F ⥤ Z
L₁ : A ⥤ B
R₁ : B ⥤ A
L₂ : B ⥤ C
R₂ : C ⥤ B
L₃ : D ⥤ E
R₃ : E ⥤ D
L₄ : E ⥤ F
R₄ : F ⥤ E
L₅ : X ⥤ Y
R₅ : Y ⥤ X
L₆ : Y ⥤ Z
R₆ : Z ⥤ Y
adj₁ : L₁ ⊣ R₁
adj₂ : L₂ ⊣ R₂
adj₃ : L₃ ⊣ R₃
adj₄ : L₄ ⊣ R₄
adj₅ : L₅ ⊣ R₅
adj₆ : L₆ ⊣ R₆
α : R₁ ⋙ G₁ ⟶ H₁ ⋙ R₃
β : R₂ ⋙ H₁ ⟶ K₁ ⋙ R₄
γ : R₃ ⋙ G₂ ⟶ H₂ ⋙ R₅
δ : R₄ ⋙ H₂ ⟶ K₂ ⋙ R₆
⊢ whiskerRight (whiskerLeft R₂ α ≫ whiskerRight β R₃) G₂ ≫ whiskerLeft K₁ (whiskerLeft R₄ γ ≫ whiskerRight δ R₅) =
    whiskerLeft R₂ (whiskerRight α G₂ ≫ whiskerLeft H₁ γ) ≫ whiskerRight (whiskerRight β H₂ ≫ whiskerLeft K₁ δ) R₅
tactic: unfold rightAdjointSquare.comp rightAdjointSquare.hcomp rightAdjointSquare.vcomp
state_before: A : Type u₁
B : Type u₂
C : Type u₃
D : Type u₄
E : Type u₅
F : Type u₆
X : Type u₇
Y : Type u₈
Z : Type u₉
inst✝⁸ : Category.{v₁, u₁} A
inst✝⁷ : Category.{v₂, u₂} B
inst✝⁶ : Category.{v₃, u₃} C
inst✝⁵ : Category.{v₄, u₄} D
inst✝⁴ : Category.{v₅, u₅} E
inst✝³ : Category.{v₆, u₆} F
inst✝² : Category.{v₇, u₇} X
inst✝¹ : Category.{v₈, u₈} Y
inst✝ : Category.{v₉, u₉} Z
G₁ : A ⥤ D
H₁ : B ⥤ E
K₁ : C ⥤ F
G₂ : D ⥤ X
H₂ : E ⥤ Y
K₂ : F ⥤ Z
L₁ : A ⥤ B
R₁ : B ⥤ A
L₂ : B ⥤ C
R₂ : C ⥤ B
L₃ : D ⥤ E
R₃ : E ⥤ D
L₄ : E ⥤ F
R₄ : F ⥤ E
L₅ : X ⥤ Y
R₅ : Y ⥤ X
L₆ : Y ⥤ Z
R₆ : Z ⥤ Y
adj₁ : L₁ ⊣ R₁
adj₂ : L₂ ⊣ R₂
adj₃ : L₃ ⊣ R₃
adj₄ : L₄ ⊣ R₄
adj₅ : L₅ ⊣ R₅
adj₆ : L₆ ⊣ R₆
α : R₁ ⋙ G₁ ⟶ H₁ ⋙ R₃
β : R₂ ⋙ H₁ ⟶ K₁ ⋙ R₄
γ : R₃ ⋙ G₂ ⟶ H₂ ⋙ R₅
δ : R₄ ⋙ H₂ ⟶ K₂ ⋙ R₆
⊢ whiskerRight (whiskerLeft R₂ α ≫ whiskerRight β R₃) G₂ ≫ whiskerLeft K₁ (whiskerLeft R₄ γ ≫ whiskerRight δ R₅) =
    whiskerLeft R₂ (whiskerRight α G₂ ≫ whiskerLeft H₁ γ) ≫ whiskerRight (whiskerRight β H₂ ≫ whiskerLeft K₁ δ) R₅
state_after: A : Type u₁
B : Type u₂
C : Type u₃
D : Type u₄
E : Type u₅
F : Type u₆
X : Type u₇
Y : Type u₈
Z : Type u₉
inst✝⁸ : Category.{v₁, u₁} A
inst✝⁷ : Category.{v₂, u₂} B
inst✝⁶ : Category.{v₃, u₃} C
inst✝⁵ : Category.{v₄, u₄} D
inst✝⁴ : Category.{v₅, u₅} E
inst✝³ : Category.{v₆, u₆} F
inst✝² : Category.{v₇, u₇} X
inst✝¹ : Category.{v₈, u₈} Y
inst✝ : Category.{v₉, u₉} Z
G₁ : A ⥤ D
H₁ : B ⥤ E
K₁ : C ⥤ F
G₂ : D ⥤ X
H₂ : E ⥤ Y
K₂ : F ⥤ Z
L₁ : A ⥤ B
R₁ : B ⥤ A
L₂ : B ⥤ C
R₂ : C ⥤ B
L₃ : D ⥤ E
R₃ : E ⥤ D
L₄ : E ⥤ F
R₄ : F ⥤ E
L₅ : X ⥤ Y
R₅ : Y ⥤ X
L₆ : Y ⥤ Z
R₆ : Z ⥤ Y
adj₁ : L₁ ⊣ R₁
adj₂ : L₂ ⊣ R₂
adj₃ : L₃ ⊣ R₃
adj₄ : L₄ ⊣ R₄
adj₅ : L₅ ⊣ R₅
adj₆ : L₆ ⊣ R₆
α : R₁ ⋙ G₁ ⟶ H₁ ⋙ R₃
β : R₂ ⋙ H₁ ⟶ K₁ ⋙ R₄
γ : R₃ ⋙ G₂ ⟶ H₂ ⋙ R₅
δ : R₄ ⋙ H₂ ⟶ K₂ ⋙ R₆
⊢ {
        app := fun X_1 =>
          G₂.map
            (({ app := fun X => α.app (R₂.obj X), naturality := ⋯ } ≫
                  { app := fun X => R₃.map (β.app X), naturality := ⋯ }).app
              X_1),
        naturality := ⋯ } ≫
      {
        app := fun X_1 =>
          ({ app := fun X_2 => γ.app (R₄.obj X_2), naturality := ⋯ } ≫
                { app := fun X_2 => R₅.map (δ.app X_2), naturality := ⋯ }).app
            (K₁.obj X_1),
        naturality := ⋯ } =
    {
        app := fun X_1 =>
          ({ app := fun X_2 => G₂.map (α.app X_2), naturality := ⋯ } ≫
                { app := fun X_2 => γ.app (H₁.obj X_2), naturality := ⋯ }).app
            (R₂.obj X_1),
        naturality := ⋯ } ≫
      {
        app := fun X_1 =>
          R₅.map
            (({ app := fun X => H₂.map (β.app X), naturality := ⋯ } ≫
                  { app := fun X => δ.app (K₁.obj X), naturality := ⋯ }).app
              X_1),
        naturality := ⋯ }
tactic: unfold whiskerLeft whiskerRight
state_before: A : Type u₁
B : Type u₂
C : Type u₃
D : Type u₄
E : Type u₅
F : Type u₆
X : Type u₇
Y : Type u₈
Z : Type u₉
inst✝⁸ : Category.{v₁, u₁} A
inst✝⁷ : Category.{v₂, u₂} B
inst✝⁶ : Category.{v₃, u₃} C
inst✝⁵ : Category.{v₄, u₄} D
inst✝⁴ : Category.{v₅, u₅} E
inst✝³ : Category.{v₆, u₆} F
inst✝² : Category.{v₇, u₇} X
inst✝¹ : Category.{v₈, u₈} Y
inst✝ : Category.{v₉, u₉} Z
G₁ : A ⥤ D
H₁ : B ⥤ E
K₁ : C ⥤ F
G₂ : D ⥤ X
H₂ : E ⥤ Y
K₂ : F ⥤ Z
L₁ : A ⥤ B
R₁ : B ⥤ A
L₂ : B ⥤ C
R₂ : C ⥤ B
L₃ : D ⥤ E
R₃ : E ⥤ D
L₄ : E ⥤ F
R₄ : F ⥤ E
L₅ : X ⥤ Y
R₅ : Y ⥤ X
L₆ : Y ⥤ Z
R₆ : Z ⥤ Y
adj₁ : L₁ ⊣ R₁
adj₂ : L₂ ⊣ R₂
adj₃ : L₃ ⊣ R₃
adj₄ : L₄ ⊣ R₄
adj₅ : L₅ ⊣ R₅
adj₆ : L₆ ⊣ R₆
α : R₁ ⋙ G₁ ⟶ H₁ ⋙ R₃
β : R₂ ⋙ H₁ ⟶ K₁ ⋙ R₄
γ : R₃ ⋙ G₂ ⟶ H₂ ⋙ R₅
δ : R₄ ⋙ H₂ ⟶ K₂ ⋙ R₆
⊢ {
        app := fun X_1 =>
          G₂.map
            (({ app := fun X => α.app (R₂.obj X), naturality := ⋯ } ≫
                  { app := fun X => R₃.map (β.app X), naturality := ⋯ }).app
              X_1),
        naturality := ⋯ } ≫
      {
        app := fun X_1 =>
          ({ app := fun X_2 => γ.app (R₄.obj X_2), naturality := ⋯ } ≫
                { app := fun X_2 => R₅.map (δ.app X_2), naturality := ⋯ }).app
            (K₁.obj X_1),
        naturality := ⋯ } =
    {
        app := fun X_1 =>
          ({ app := fun X_2 => G₂.map (α.app X_2), naturality := ⋯ } ≫
                { app := fun X_2 => γ.app (H₁.obj X_2), naturality := ⋯ }).app
            (R₂.obj X_1),
        naturality := ⋯ } ≫
      {
        app := fun X_1 =>
          R₅.map
            (({ app := fun X => H₂.map (β.app X), naturality := ⋯ } ≫
                  { app := fun X => δ.app (K₁.obj X), naturality := ⋯ }).app
              X_1),
        naturality := ⋯ }
state_after: case w.h
A : Type u₁
B : Type u₂
C : Type u₃
D : Type u₄
E : Type u₅
F : Type u₆
X : Type u₇
Y : Type u₈
Z : Type u₉
inst✝⁸ : Category.{v₁, u₁} A
inst✝⁷ : Category.{v₂, u₂} B
inst✝⁶ : Category.{v₃, u₃} C
inst✝⁵ : Category.{v₄, u₄} D
inst✝⁴ : Category.{v₅, u₅} E
inst✝³ : Category.{v₆, u₆} F
inst✝² : Category.{v₇, u₇} X
inst✝¹ : Category.{v₈, u₈} Y
inst✝ : Category.{v₉, u₉} Z
G₁ : A ⥤ D
H₁ : B ⥤ E
K₁ : C ⥤ F
G₂ : D ⥤ X
H₂ : E ⥤ Y
K₂ : F ⥤ Z
L₁ : A ⥤ B
R₁ : B ⥤ A
L₂ : B ⥤ C
R₂ : C ⥤ B
L₃ : D ⥤ E
R₃ : E ⥤ D
L₄ : E ⥤ F
R₄ : F ⥤ E
L₅ : X ⥤ Y
R₅ : Y ⥤ X
L₆ : Y ⥤ Z
R₆ : Z ⥤ Y
adj₁ : L₁ ⊣ R₁
adj₂ : L₂ ⊣ R₂
adj₃ : L₃ ⊣ R₃
adj₄ : L₄ ⊣ R₄
adj₅ : L₅ ⊣ R₅
adj₆ : L₆ ⊣ R₆
α : R₁ ⋙ G₁ ⟶ H₁ ⋙ R₃
β : R₂ ⋙ H₁ ⟶ K₁ ⋙ R₄
γ : R₃ ⋙ G₂ ⟶ H₂ ⋙ R₅
δ : R₄ ⋙ H₂ ⟶ K₂ ⋙ R₆
c : C
⊢ ({
            app := fun X_1 =>
              G₂.map
                (({ app := fun X => α.app (R₂.obj X), naturality := ⋯ } ≫
                      { app := fun X => R₃.map (β.app X), naturality := ⋯ }).app
                  X_1),
            naturality := ⋯ } ≫
          {
            app := fun X_1 =>
              ({ app := fun X_2 => γ.app (R₄.obj X_2), naturality := ⋯ } ≫
                    { app := fun X_2 => R₅.map (δ.app X_2), naturality := ⋯ }).app
                (K₁.obj X_1),
            naturality := ⋯ }).app
      c =
    ({
            app := fun X_1 =>
              ({ app := fun X_2 => G₂.map (α.app X_2), naturality := ⋯ } ≫
                    { app := fun X_2 => γ.app (H₁.obj X_2), naturality := ⋯ }).app
                (R₂.obj X_1),
            naturality := ⋯ } ≫
          {
            app := fun X_1 =>
              R₅.map
                (({ app := fun X => H₂.map (β.app X), naturality := ⋯ } ≫
                      { app := fun X => δ.app (K₁.obj X), naturality := ⋯ }).app
                  X_1),
            naturality := ⋯ }).app
      c
tactic: ext c
state_before: case w.h
A : Type u₁
B : Type u₂
C : Type u₃
D : Type u₄
E : Type u₅
F : Type u₆
X : Type u₇
Y : Type u₈
Z : Type u₉
inst✝⁸ : Category.{v₁, u₁} A
inst✝⁷ : Category.{v₂, u₂} B
inst✝⁶ : Category.{v₃, u₃} C
inst✝⁵ : Category.{v₄, u₄} D
inst✝⁴ : Category.{v₅, u₅} E
inst✝³ : Category.{v₆, u₆} F
inst✝² : Category.{v₇, u₇} X
inst✝¹ : Category.{v₈, u₈} Y
inst✝ : Category.{v₉, u₉} Z
G₁ : A ⥤ D
H₁ : B ⥤ E
K₁ : C ⥤ F
G₂ : D ⥤ X
H₂ : E ⥤ Y
K₂ : F ⥤ Z
L₁ : A ⥤ B
R₁ : B ⥤ A
L₂ : B ⥤ C
R₂ : C ⥤ B
L₃ : D ⥤ E
R₃ : E ⥤ D
L₄ : E ⥤ F
R₄ : F ⥤ E
L₅ : X ⥤ Y
R₅ : Y ⥤ X
L₆ : Y ⥤ Z
R₆ : Z ⥤ Y
adj₁ : L₁ ⊣ R₁
adj₂ : L₂ ⊣ R₂
adj₃ : L₃ ⊣ R₃
adj₄ : L₄ ⊣ R₄
adj₅ : L₅ ⊣ R₅
adj₆ : L₆ ⊣ R₆
α : R₁ ⋙ G₁ ⟶ H₁ ⋙ R₃
β : R₂ ⋙ H₁ ⟶ K₁ ⋙ R₄
γ : R₃ ⋙ G₂ ⟶ H₂ ⋙ R₅
δ : R₄ ⋙ H₂ ⟶ K₂ ⋙ R₆
c : C
⊢ ({
            app := fun X_1 =>
              G₂.map
                (({ app := fun X => α.app (R₂.obj X), naturality := ⋯ } ≫
                      { app := fun X => R₃.map (β.app X), naturality := ⋯ }).app
                  X_1),
            naturality := ⋯ } ≫
          {
            app := fun X_1 =>
              ({ app := fun X_2 => γ.app (R₄.obj X_2), naturality := ⋯ } ≫
                    { app := fun X_2 => R₅.map (δ.app X_2), naturality := ⋯ }).app
                (K₁.obj X_1),
            naturality := ⋯ }).app
      c =
    ({
            app := fun X_1 =>
              ({ app := fun X_2 => G₂.map (α.app X_2), naturality := ⋯ } ≫
                    { app := fun X_2 => γ.app (H₁.obj X_2), naturality := ⋯ }).app
                (R₂.obj X_1),
            naturality := ⋯ } ≫
          {
            app := fun X_1 =>
              R₅.map
                (({ app := fun X => H₂.map (β.app X), naturality := ⋯ } ≫
                      { app := fun X => δ.app (K₁.obj X), naturality := ⋯ }).app
                  X_1),
            naturality := ⋯ }).app
      c
state_after: case w.h
A : Type u₁
B : Type u₂
C : Type u₃
D : Type u₄
E : Type u₅
F : Type u₆
X : Type u₇
Y : Type u₈
Z : Type u₉
inst✝⁸ : Category.{v₁, u₁} A
inst✝⁷ : Category.{v₂, u₂} B
inst✝⁶ : Category.{v₃, u₃} C
inst✝⁵ : Category.{v₄, u₄} D
inst✝⁴ : Category.{v₅, u₅} E
inst✝³ : Category.{v₆, u₆} F
inst✝² : Category.{v₇, u₇} X
inst✝¹ : Category.{v₈, u₈} Y
inst✝ : Category.{v₉, u₉} Z
G₁ : A ⥤ D
H₁ : B ⥤ E
K₁ : C ⥤ F
G₂ : D ⥤ X
H₂ : E ⥤ Y
K₂ : F ⥤ Z
L₁ : A ⥤ B
R₁ : B ⥤ A
L₂ : B ⥤ C
R₂ : C ⥤ B
L₃ : D ⥤ E
R₃ : E ⥤ D
L₄ : E ⥤ F
R₄ : F ⥤ E
L₅ : X ⥤ Y
R₅ : Y ⥤ X
L₆ : Y ⥤ Z
R₆ : Z ⥤ Y
adj₁ : L₁ ⊣ R₁
adj₂ : L₂ ⊣ R₂
adj₃ : L₃ ⊣ R₃
adj₄ : L₄ ⊣ R₄
adj₅ : L₅ ⊣ R₅
adj₆ : L₆ ⊣ R₆
α : R₁ ⋙ G₁ ⟶ H₁ ⋙ R₃
β : R₂ ⋙ H₁ ⟶ K₁ ⋙ R₄
γ : R₃ ⋙ G₂ ⟶ H₂ ⋙ R₅
δ : R₄ ⋙ H₂ ⟶ K₂ ⋙ R₆
c : C
⊢ G₂.map (α.app (R₂.obj c)) ≫ G₂.map (R₃.map (β.app c)) ≫ γ.app (R₄.obj (K₁.obj c)) ≫ R₅.map (δ.app (K₁.obj c)) =
    G₂.map (α.app (R₂.obj c)) ≫ γ.app (H₁.obj (R₂.obj c)) ≫ R₅.map (H₂.map (β.app c)) ≫ R₅.map (δ.app (K₁.obj c))
tactic: simp only [comp_obj, comp_app, map_comp, assoc]
state_before: case w.h
A : Type u₁
B : Type u₂
C : Type u₃
D : Type u₄
E : Type u₅
F : Type u₆
X : Type u₇
Y : Type u₈
Z : Type u₉
inst✝⁸ : Category.{v₁, u₁} A
inst✝⁷ : Category.{v₂, u₂} B
inst✝⁶ : Category.{v₃, u₃} C
inst✝⁵ : Category.{v₄, u₄} D
inst✝⁴ : Category.{v₅, u₅} E
inst✝³ : Category.{v₆, u₆} F
inst✝² : Category.{v₇, u₇} X
inst✝¹ : Category.{v₈, u₈} Y
inst✝ : Category.{v₉, u₉} Z
G₁ : A ⥤ D
H₁ : B ⥤ E
K₁ : C ⥤ F
G₂ : D ⥤ X
H₂ : E ⥤ Y
K₂ : F ⥤ Z
L₁ : A ⥤ B
R₁ : B ⥤ A
L₂ : B ⥤ C
R₂ : C ⥤ B
L₃ : D ⥤ E
R₃ : E ⥤ D
L₄ : E ⥤ F
R₄ : F ⥤ E
L₅ : X ⥤ Y
R₅ : Y ⥤ X
L₆ : Y ⥤ Z
R₆ : Z ⥤ Y
adj₁ : L₁ ⊣ R₁
adj₂ : L₂ ⊣ R₂
adj₃ : L₃ ⊣ R₃
adj₄ : L₄ ⊣ R₄
adj₅ : L₅ ⊣ R₅
adj₆ : L₆ ⊣ R₆
α : R₁ ⋙ G₁ ⟶ H₁ ⋙ R₃
β : R₂ ⋙ H₁ ⟶ K₁ ⋙ R₄
γ : R₃ ⋙ G₂ ⟶ H₂ ⋙ R₅
δ : R₄ ⋙ H₂ ⟶ K₂ ⋙ R₆
c : C
⊢ G₂.map (α.app (R₂.obj c)) ≫ G₂.map (R₃.map (β.app c)) ≫ γ.app (R₄.obj (K₁.obj c)) ≫ R₅.map (δ.app (K₁.obj c)) =
    G₂.map (α.app (R₂.obj c)) ≫ γ.app (H₁.obj (R₂.obj c)) ≫ R₅.map (H₂.map (β.app c)) ≫ R₅.map (δ.app (K₁.obj c))
state_after: case w.h
A : Type u₁
B : Type u₂
C : Type u₃
D : Type u₄
E : Type u₅
F : Type u₆
X : Type u₇
Y : Type u₈
Z : Type u₉
inst✝⁸ : Category.{v₁, u₁} A
inst✝⁷ : Category.{v₂, u₂} B
inst✝⁶ : Category.{v₃, u₃} C
inst✝⁵ : Category.{v₄, u₄} D
inst✝⁴ : Category.{v₅, u₅} E
inst✝³ : Category.{v₆, u₆} F
inst✝² : Category.{v₇, u₇} X
inst✝¹ : Category.{v₈, u₈} Y
inst✝ : Category.{v₉, u₉} Z
G₁ : A ⥤ D
H₁ : B ⥤ E
K₁ : C ⥤ F
G₂ : D ⥤ X
H₂ : E ⥤ Y
K₂ : F ⥤ Z
L₁ : A ⥤ B
R₁ : B ⥤ A
L₂ : B ⥤ C
R₂ : C ⥤ B
L₃ : D ⥤ E
R₃ : E ⥤ D
L₄ : E ⥤ F
R₄ : F ⥤ E
L₅ : X ⥤ Y
R₅ : Y ⥤ X
L₆ : Y ⥤ Z
R₆ : Z ⥤ Y
adj₁ : L₁ ⊣ R₁
adj₂ : L₂ ⊣ R₂
adj₃ : L₃ ⊣ R₃
adj₄ : L₄ ⊣ R₄
adj₅ : L₅ ⊣ R₅
adj₆ : L₆ ⊣ R₆
α : R₁ ⋙ G₁ ⟶ H₁ ⋙ R₃
β : R₂ ⋙ H₁ ⟶ K₁ ⋙ R₄
γ : R₃ ⋙ G₂ ⟶ H₂ ⋙ R₅
δ : R₄ ⋙ H₂ ⟶ K₂ ⋙ R₆
c : C
⊢ G₂.map (α.app (R₂.obj c)) ≫ G₂.map (R₃.map (β.app c)) ≫ γ.app (R₄.obj (K₁.obj c)) ≫ R₅.map (δ.app (K₁.obj c)) =
    G₂.map (α.app (R₂.obj c)) ≫ ((R₃ ⋙ G₂).map (β.app c) ≫ γ.app (R₄.obj (K₁.obj c))) ≫ R₅.map (δ.app (K₁.obj c))
tactic: slice_rhs 2 3 =>
    {
      rw [← Functor.comp_map _ R₅, ← γ.naturality]
    }
state_before: case w.h
A : Type u₁
B : Type u₂
C : Type u₃
D : Type u₄
E : Type u₅
F : Type u₆
X : Type u₇
Y : Type u₈
Z : Type u₉
inst✝⁸ : Category.{v₁, u₁} A
inst✝⁷ : Category.{v₂, u₂} B
inst✝⁶ : Category.{v₃, u₃} C
inst✝⁵ : Category.{v₄, u₄} D
inst✝⁴ : Category.{v₅, u₅} E
inst✝³ : Category.{v₆, u₆} F
inst✝² : Category.{v₇, u₇} X
inst✝¹ : Category.{v₈, u₈} Y
inst✝ : Category.{v₉, u₉} Z
G₁ : A ⥤ D
H₁ : B ⥤ E
K₁ : C ⥤ F
G₂ : D ⥤ X
H₂ : E ⥤ Y
K₂ : F ⥤ Z
L₁ : A ⥤ B
R₁ : B ⥤ A
L₂ : B ⥤ C
R₂ : C ⥤ B
L₃ : D ⥤ E
R₃ : E ⥤ D
L₄ : E ⥤ F
R₄ : F ⥤ E
L₅ : X ⥤ Y
R₅ : Y ⥤ X
L₆ : Y ⥤ Z
R₆ : Z ⥤ Y
adj₁ : L₁ ⊣ R₁
adj₂ : L₂ ⊣ R₂
adj₃ : L₃ ⊣ R₃
adj₄ : L₄ ⊣ R₄
adj₅ : L₅ ⊣ R₅
adj₆ : L₆ ⊣ R₆
α : R₁ ⋙ G₁ ⟶ H₁ ⋙ R₃
β : R₂ ⋙ H₁ ⟶ K₁ ⋙ R₄
γ : R₃ ⋙ G₂ ⟶ H₂ ⋙ R₅
δ : R₄ ⋙ H₂ ⟶ K₂ ⋙ R₆
c : C
⊢ G₂.map (α.app (R₂.obj c)) ≫ G₂.map (R₃.map (β.app c)) ≫ γ.app (R₄.obj (K₁.obj c)) ≫ R₅.map (δ.app (K₁.obj c)) =
    G₂.map (α.app (R₂.obj c)) ≫ ((R₃ ⋙ G₂).map (β.app c) ≫ γ.app (R₄.obj (K₁.obj c))) ≫ R₅.map (δ.app (K₁.obj c))
state_after: no goals
tactic: simp only [comp_obj, Functor.comp_map, assoc]