Theorem: CategoryTheory.leftAdjointSquare.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₆
α : G₁ ⋙ L₃ ⟶ L₁ ⋙ H₁
β : H₁ ⋙ L₄ ⟶ L₂ ⋙ K₁
γ : G₂ ⋙ L₅ ⟶ L₃ ⋙ H₂
δ : H₂ ⋙ L₆ ⟶ L₄ ⋙ K₂
⊢ 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₆
α : G₁ ⋙ L₃ ⟶ L₁ ⋙ H₁
β : H₁ ⋙ L₄ ⟶ L₂ ⋙ K₁
γ : G₂ ⋙ L₅ ⟶ L₃ ⋙ H₂
δ : H₂ ⋙ L₆ ⟶ L₄ ⋙ K₂
⊢ whiskerLeft G₁ (whiskerRight γ L₆ ≫ whiskerLeft L₃ δ) ≫ whiskerRight (whiskerRight α L₄ ≫ whiskerLeft L₁ β) K₂ =
    whiskerRight (whiskerLeft G₁ γ ≫ whiskerRight α H₂) L₆ ≫ whiskerLeft L₁ (whiskerLeft H₁ δ ≫ whiskerRight β K₂)
tactic: unfold leftAdjointSquare.comp leftAdjointSquare.hcomp leftAdjointSquare.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₆
α : G₁ ⋙ L₃ ⟶ L₁ ⋙ H₁
β : H₁ ⋙ L₄ ⟶ L₂ ⋙ K₁
γ : G₂ ⋙ L₅ ⟶ L₃ ⋙ H₂
δ : H₂ ⋙ L₆ ⟶ L₄ ⋙ K₂
⊢ whiskerLeft G₁ (whiskerRight γ L₆ ≫ whiskerLeft L₃ δ) ≫ whiskerRight (whiskerRight α L₄ ≫ whiskerLeft L₁ β) K₂ =
    whiskerRight (whiskerLeft G₁ γ ≫ whiskerRight α H₂) L₆ ≫ whiskerLeft L₁ (whiskerLeft H₁ δ ≫ whiskerRight β K₂)
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₆
α : G₁ ⋙ L₃ ⟶ L₁ ⋙ H₁
β : H₁ ⋙ L₄ ⟶ L₂ ⋙ K₁
γ : G₂ ⋙ L₅ ⟶ L₃ ⋙ H₂
δ : H₂ ⋙ L₆ ⟶ L₄ ⋙ K₂
⊢ {
        app := fun X_1 =>
          ({ app := fun X_2 => L₆.map (γ.app X_2), naturality := ⋯ } ≫
                { app := fun X => δ.app (L₃.obj X), naturality := ⋯ }).app
            (G₁.obj X_1),
        naturality := ⋯ } ≫
      {
        app := fun X =>
          K₂.map
            (({ app := fun X => L₄.map (α.app X), naturality := ⋯ } ≫
                  { app := fun X => β.app (L₁.obj X), naturality := ⋯ }).app
              X),
        naturality := ⋯ } =
    {
        app := fun X_1 =>
          L₆.map
            (({ app := fun X_2 => γ.app (G₁.obj X_2), naturality := ⋯ } ≫
                  { app := fun X => H₂.map (α.app X), naturality := ⋯ }).app
              X_1),
        naturality := ⋯ } ≫
      {
        app := fun X =>
          ({ app := fun X => δ.app (H₁.obj X), naturality := ⋯ } ≫
                { app := fun X => K₂.map (β.app X), naturality := ⋯ }).app
            (L₁.obj X),
        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₆
α : G₁ ⋙ L₃ ⟶ L₁ ⋙ H₁
β : H₁ ⋙ L₄ ⟶ L₂ ⋙ K₁
γ : G₂ ⋙ L₅ ⟶ L₃ ⋙ H₂
δ : H₂ ⋙ L₆ ⟶ L₄ ⋙ K₂
⊢ {
        app := fun X_1 =>
          ({ app := fun X_2 => L₆.map (γ.app X_2), naturality := ⋯ } ≫
                { app := fun X => δ.app (L₃.obj X), naturality := ⋯ }).app
            (G₁.obj X_1),
        naturality := ⋯ } ≫
      {
        app := fun X =>
          K₂.map
            (({ app := fun X => L₄.map (α.app X), naturality := ⋯ } ≫
                  { app := fun X => β.app (L₁.obj X), naturality := ⋯ }).app
              X),
        naturality := ⋯ } =
    {
        app := fun X_1 =>
          L₆.map
            (({ app := fun X_2 => γ.app (G₁.obj X_2), naturality := ⋯ } ≫
                  { app := fun X => H₂.map (α.app X), naturality := ⋯ }).app
              X_1),
        naturality := ⋯ } ≫
      {
        app := fun X =>
          ({ app := fun X => δ.app (H₁.obj X), naturality := ⋯ } ≫
                { app := fun X => K₂.map (β.app X), naturality := ⋯ }).app
            (L₁.obj X),
        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₆
α : G₁ ⋙ L₃ ⟶ L₁ ⋙ H₁
β : H₁ ⋙ L₄ ⟶ L₂ ⋙ K₁
γ : G₂ ⋙ L₅ ⟶ L₃ ⋙ H₂
δ : H₂ ⋙ L₆ ⟶ L₄ ⋙ K₂
a : A
⊢ ({
            app := fun X_1 =>
              ({ app := fun X_2 => L₆.map (γ.app X_2), naturality := ⋯ } ≫
                    { app := fun X => δ.app (L₃.obj X), naturality := ⋯ }).app
                (G₁.obj X_1),
            naturality := ⋯ } ≫
          {
            app := fun X =>
              K₂.map
                (({ app := fun X => L₄.map (α.app X), naturality := ⋯ } ≫
                      { app := fun X => β.app (L₁.obj X), naturality := ⋯ }).app
                  X),
            naturality := ⋯ }).app
      a =
    ({
            app := fun X_1 =>
              L₆.map
                (({ app := fun X_2 => γ.app (G₁.obj X_2), naturality := ⋯ } ≫
                      { app := fun X => H₂.map (α.app X), naturality := ⋯ }).app
                  X_1),
            naturality := ⋯ } ≫
          {
            app := fun X =>
              ({ app := fun X => δ.app (H₁.obj X), naturality := ⋯ } ≫
                    { app := fun X => K₂.map (β.app X), naturality := ⋯ }).app
                (L₁.obj X),
            naturality := ⋯ }).app
      a
tactic: ext a
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₆
α : G₁ ⋙ L₃ ⟶ L₁ ⋙ H₁
β : H₁ ⋙ L₄ ⟶ L₂ ⋙ K₁
γ : G₂ ⋙ L₅ ⟶ L₃ ⋙ H₂
δ : H₂ ⋙ L₆ ⟶ L₄ ⋙ K₂
a : A
⊢ ({
            app := fun X_1 =>
              ({ app := fun X_2 => L₆.map (γ.app X_2), naturality := ⋯ } ≫
                    { app := fun X => δ.app (L₃.obj X), naturality := ⋯ }).app
                (G₁.obj X_1),
            naturality := ⋯ } ≫
          {
            app := fun X =>
              K₂.map
                (({ app := fun X => L₄.map (α.app X), naturality := ⋯ } ≫
                      { app := fun X => β.app (L₁.obj X), naturality := ⋯ }).app
                  X),
            naturality := ⋯ }).app
      a =
    ({
            app := fun X_1 =>
              L₆.map
                (({ app := fun X_2 => γ.app (G₁.obj X_2), naturality := ⋯ } ≫
                      { app := fun X => H₂.map (α.app X), naturality := ⋯ }).app
                  X_1),
            naturality := ⋯ } ≫
          {
            app := fun X =>
              ({ app := fun X => δ.app (H₁.obj X), naturality := ⋯ } ≫
                    { app := fun X => K₂.map (β.app X), naturality := ⋯ }).app
                (L₁.obj X),
            naturality := ⋯ }).app
      a
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₆
α : G₁ ⋙ L₃ ⟶ L₁ ⋙ H₁
β : H₁ ⋙ L₄ ⟶ L₂ ⋙ K₁
γ : G₂ ⋙ L₅ ⟶ L₃ ⋙ H₂
δ : H₂ ⋙ L₆ ⟶ L₄ ⋙ K₂
a : A
⊢ L₆.map (γ.app (G₁.obj a)) ≫ δ.app (L₃.obj (G₁.obj a)) ≫ K₂.map (L₄.map (α.app a)) ≫ K₂.map (β.app (L₁.obj a)) =
    L₆.map (γ.app (G₁.obj a)) ≫ L₆.map (H₂.map (α.app a)) ≫ δ.app (H₁.obj (L₁.obj a)) ≫ K₂.map (β.app (L₁.obj a))
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₆
α : G₁ ⋙ L₃ ⟶ L₁ ⋙ H₁
β : H₁ ⋙ L₄ ⟶ L₂ ⋙ K₁
γ : G₂ ⋙ L₅ ⟶ L₃ ⋙ H₂
δ : H₂ ⋙ L₆ ⟶ L₄ ⋙ K₂
a : A
⊢ L₆.map (γ.app (G₁.obj a)) ≫ δ.app (L₃.obj (G₁.obj a)) ≫ K₂.map (L₄.map (α.app a)) ≫ K₂.map (β.app (L₁.obj a)) =
    L₆.map (γ.app (G₁.obj a)) ≫ L₆.map (H₂.map (α.app a)) ≫ δ.app (H₁.obj (L₁.obj a)) ≫ K₂.map (β.app (L₁.obj a))
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₆
α : G₁ ⋙ L₃ ⟶ L₁ ⋙ H₁
β : H₁ ⋙ L₄ ⟶ L₂ ⋙ K₁
γ : G₂ ⋙ L₅ ⟶ L₃ ⋙ H₂
δ : H₂ ⋙ L₆ ⟶ L₄ ⋙ K₂
a : A
⊢ L₆.map (γ.app (G₁.obj a)) ≫ δ.app (L₃.obj (G₁.obj a)) ≫ K₂.map (L₄.map (α.app a)) ≫ K₂.map (β.app (L₁.obj a)) =
    L₆.map (γ.app (G₁.obj a)) ≫ (δ.app (L₃.obj (G₁.obj a)) ≫ (L₄ ⋙ K₂).map (α.app a)) ≫ K₂.map (β.app (L₁.obj a))
tactic: slice_rhs 2 3 =>
    {
      rw [← Functor.comp_map _ L₆, δ.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₆
α : G₁ ⋙ L₃ ⟶ L₁ ⋙ H₁
β : H₁ ⋙ L₄ ⟶ L₂ ⋙ K₁
γ : G₂ ⋙ L₅ ⟶ L₃ ⋙ H₂
δ : H₂ ⋙ L₆ ⟶ L₄ ⋙ K₂
a : A
⊢ L₆.map (γ.app (G₁.obj a)) ≫ δ.app (L₃.obj (G₁.obj a)) ≫ K₂.map (L₄.map (α.app a)) ≫ K₂.map (β.app (L₁.obj a)) =
    L₆.map (γ.app (G₁.obj a)) ≫ (δ.app (L₃.obj (G₁.obj a)) ≫ (L₄ ⋙ K₂).map (α.app a)) ≫ K₂.map (β.app (L₁.obj a))
state_after: no goals
tactic: simp only [comp_obj, Functor.comp_map, assoc]