-- Lean 4 proof step from Mathlib.CategoryTheory.Localization.Trifunctor (goal)
Goal:
C₁ : Type u_1
C₂ : Type u_2
C₃ : Type u_3
C₁₂ : Type u_4
C₂₃ : Type u_5
D₁ : Type u_6
D₂ : Type u_7
D₃ : Type u_8
D₁₂ : Type u_9
D₂₃ : Type u_10
C : Type u_11
D : Type u_12
inst : Category.{v_1, u_1} C₁
inst_1 : Category.{v_2, u_2} C₂
inst_2 : Category.{v_3, u_3} C₃
inst_3 : Category.{v_4, u_6} D₁
inst_4 : Category.{v_5, u_7} D₂
inst_5 : Category.{v_6, u_8} D₃
inst_6 : Category.{v_7, u_4} C₁₂
inst_7 : Category.{v_8, u_5} C₂₃
inst_8 : Category.{v_9, u_9} D₁₂
inst_9 : Category.{v_10, u_10} D₂₃
inst_10 : Category.{v_11, u_11} C
inst_11 : Category.{v_12, u_12} D
L₁ : Functor.{v_1, v_4, u_1, u_6} C₁ D₁
L₂ : Functor.{v_2, v_5, u_2, u_7} C₂ D₂
L₃ : Functor.{v_3, v_6, u_3, u_8} C₃ D₃
L₁₂ : Functor.{v_7, v_9, u_4, u_9} C₁₂ D₁₂
L₂₃ : Functor.{v_8, v_10, u_5, u_10} C₂₃ D₂₃
L : Functor.{v_11, v_12, u_11, u_12} C D
W₁ : MorphismProperty.{v_1, u_1} C₁
W₂ : MorphismProperty.{v_2, u_2} C₂
W₃ : MorphismProperty.{v_3, u_3} C₃
W₁₂ : MorphismProperty.{v_7, u_4} C₁₂
W₂₃ : MorphismProperty.{v_8, u_5} C₂₃
inst_12 : W₁.ContainsIdentities
inst_13 : W₂.ContainsIdentities
inst_14 : W₃.ContainsIdentities
inst_15 : L₁.IsLocalization W₁
inst_16 : L₂.IsLocalization W₂
inst_17 : L₃.IsLocalization W₃
F₁₂ : C₁ ⥤ Functor.{v_2, v_7, u_2, u_4} C₂ C₁₂
G : C₁₂ ⥤ Functor.{v_3, v_11, u_3, u_11} C₃ C
F : C₁ ⥤ Functor.{v_8, v_11, u_5, u_11} C₂₃ C
G₂₃ : C₂ ⥤ Functor.{v_3, v_8, u_3, u_5} C₃ C₂₃
iso : bifunctorComp₁₂ F₁₂ G ≅ bifunctorComp₂₃ F G₂₃
F₁₂' : D₁ ⥤ Functor.{v_5, v_9, u_7, u_9} D₂ D₁₂
G' : D₁₂ ⥤ Functor.{v_6, v_12, u_8, u_12} D₃ D
F' : D₁ ⥤ Functor.{v_10, v_12, u_10, u_12} D₂₃ D
G₂₃' : D₂ ⥤ Functor.{v_6, v_10, u_8, u_10} D₃ D₂₃
inst_18 : Lifting₂ L₁ L₂ W₁ W₂ (F₁₂ ⋙ obj (whiskeringRight C₂ C₁₂ D₁₂) L₁₂) F₁₂'
inst_19 : Lifting₂ L₁₂ L₃ W₁₂ W₃ (G ⋙ obj (whiskeringRight C₃ C D) L) G'
inst_20 : Lifting₂ L₁ L₂₃ W₁ W₂₃ (F ⋙ obj (whiskeringRight C₂₃ C D) L) F'
inst_21 : Lifting₂ L₂ L₃ W₂ W₃ (G₂₃ ⋙ obj (whiskeringRight C₃ C₂₃ D₂₃) L₂₃) G₂₃'
X₁ : C₁
X₂ : C₂
X₃ : C₃
⊢ Eq (α :=
    (G'.obj ((F₁₂'.obj (L₁.obj X₁)).obj (L₂.obj X₂))).obj (L₃.obj X₃) ⟶
      (F'.obj (L₁.obj X₁)).obj ((G₂₃'.obj (L₂.obj X₂)).obj (L₃.obj X₃)))
    (NatTrans.app
          (NatTrans.app
            (NatTrans.app
              (Iso.hom
                (Lifting₃.iso L₁ L₂ L₃ W₁ W₂ W₃ (obj (obj postcompose₃ L) (bifunctorComp₁₂ F₁₂ G))
                  (bifunctorComp₁₂ F₁₂' G')))
              X₁)
            X₂)
          X₃ ≫
        NatTrans.app (NatTrans.app (NatTrans.app (map (obj postcompose₃ L) iso.hom) X₁) X₂) X₃ ≫
          NatTrans.app
            (NatTrans.app
              (NatTrans.app
                (Iso.inv
                  (Lifting₃.iso L₁ L₂ L₃ W₁ W₂ W₃ (obj (obj postcompose₃ L) (bifunctorComp₂₃ F G₂₃))
                    (bifunctorComp₂₃ F' G₂₃')))
                X₁)
              X₂)
            X₃ :
      (((obj (obj (obj (obj (whiskeringLeft₃ D) L₁) L₂) L₃) (bifunctorComp₁₂ F₁₂' G')).obj X₁).obj X₂).obj X₃ ⟶
        (((obj (obj (obj (obj (whiskeringLeft₃ D) L₁) L₂) L₃) (bifunctorComp₂₃ F' G₂₃')).obj X₁).obj X₂).obj X₃)
    ((G'.map (((Lifting₂.iso L₁ L₂ W₁ W₂ (F₁₂ ⋙ obj (whiskeringRight C₂ C₁₂ D₁₂) L₁₂) F₁₂').hom.app X₁).app X₂)).app
        (L₃.obj X₃) ≫
      NatTrans.app ((Lifting₂.iso L₁₂ L₃ W₁₂ W₃ (G ⋙ obj (whiskeringRight C₃ C D) L) G').hom.app ((F₁₂.obj X₁).obj X₂))
          X₃ ≫
        L.map (((iso.hom.app X₁).app X₂).app X₃) ≫
          ((Lifting₂.iso L₁ L₂₃ W₁ W₂₃ (F ⋙ obj (whiskeringRight C₂₃ C D) L) F').inv.app X₁).app ((G₂₃.obj X₂).obj X₃) ≫
            (F'.obj (L₁.obj X₁)).map
              (((Lifting₂.iso L₂ L₃ W₂ W₃ (G₂₃ ⋙ obj (whiskeringRight C₃ C₂₃ D₂₃) L₂₃) G₂₃').inv.app X₂).app X₃))
have dsimp : Eq (α :=
  (G'.obj ((F₁₂'.obj (L₁.obj X₁)).obj (L₂.obj X₂))).obj (L₃.obj X₃) ⟶
    (F'.obj (L₁.obj X₁)).obj ((G₂₃'.obj (L₂.obj X₂)).obj (L₃.obj X₃)))
  (((G'.map (((Lifting₂.iso L₁ L₂ W₁ W₂ (F₁₂ ⋙ obj (whiskeringRight C₂ C₁₂ D₁₂) L₁₂) F₁₂').hom.app X₁).app X₂)).app
        (L₃.obj X₃) ≫
      NatTrans.app ((Lifting₂.iso L₁₂ L₃ W₁₂ W₃ (G ⋙ obj (whiskeringRight C₃ C D) L) G').hom.app ((F₁₂.obj X₁).obj X₂))
        X₃) ≫
    L.map (((iso.hom.app X₁).app X₂).app X₃) ≫
      ((Lifting₂.iso L₁ L₂₃ W₁ W₂₃ (F ⋙ obj (whiskeringRight C₂₃ C D) L) F').inv.app X₁).app ((G₂₃.obj X₂).obj X₃) ≫
        (F'.obj (L₁.obj X₁)).map
          (((Lifting₂.iso L₂ L₃ W₂ W₃ (G₂₃ ⋙ obj (whiskeringRight C₃ C₂₃ D₂₃) L₂₃) G₂₃').inv.app X₂).app X₃))
  ((G'.map (((Lifting₂.iso L₁ L₂ W₁ W₂ (F₁₂ ⋙ obj (whiskeringRight C₂ C₁₂ D₁₂) L₁₂) F₁₂').hom.app X₁).app X₂)).app
      (L₃.obj X₃) ≫
    NatTrans.app ((Lifting₂.iso L₁₂ L₃ W₁₂ W₃ (G ⋙ obj (whiskeringRight C₃ C D) L) G').hom.app ((F₁₂.obj X₁).obj X₂))
        X₃ ≫
      L.map (((iso.hom.app X₁).app X₂).app X₃) ≫
        ((Lifting₂.iso L₁ L₂₃ W₁ W₂₃ (F ⋙ obj (whiskeringRight C₂₃ C D) L) F').inv.app X₁).app ((G₂₃.obj X₂).obj X₃) ≫
          (F'.obj (L₁.obj X₁)).map
            (((Lifting₂.iso L₂ L₃ W₂ W₃ (G₂₃ ⋙ obj (whiskeringRight C₃ C₂₃ D₂₃) L₂₃) G₂₃').inv.app X₂).app X₃))
Tactic: dsimp +instances [Lifting₃.iso, Lifting₃.bifunctorComp₁₂, Lifting₃.bifunctorComp₂₃]