-- Lean 4 proof step from Mathlib.CategoryTheory.Monoidal.Action.Opposites (goal)
Goal:
C : Type u_1
D : Type u_2
inst : Category.{v_1, u_1} C
inst_1 : MonoidalCategory.{v_1, u_1} C
inst_2 : Category.{v_2, u_2} D
inst_3 : MonoidalLeftAction.{v_1, u_1, v_2, u_2} Cᵒᵖ Dᵒᵖ
x x_1 x_2 : C
x_3 : D
⊢ Eq.{v_2 + 1} (α :=
    unop
        (@actionObj.{v_1, u_1, v_2, u_2} _ _ Category.opposite Category.opposite toMonoidalCategoryStruct _
          (op (tensorObj.{v_1, u_1} (𝒞 := inst) (tensorObj.{v_1, u_1} (𝒞 := inst) x x_1) x_2)) (op x_3)) ⟶
      unop
        (@actionObj.{v_1, u_1, v_2, u_2} _ _ Category.opposite Category.opposite toMonoidalCategoryStruct _ (op x)
          (op
            (unop
              (@actionObj.{v_1, u_1, v_2, u_2} _ _ Category.opposite Category.opposite toMonoidalCategoryStruct _
                (op x_1)
                (op
                  (unop
                    (@actionObj.{v_1, u_1, v_2, u_2} _ _ Category.opposite Category.opposite toMonoidalCategoryStruct _
                      (op x_2) (op x_3)))))))))
    (CategoryStruct.comp (Y :=
      unop
        (@actionObj.{v_1, u_1, v_2, u_2} _ _ Category.opposite Category.opposite toMonoidalCategoryStruct _
          (op (tensorObj.{v_1, u_1} (𝒞 := inst) x (tensorObj.{v_1, u_1} (𝒞 := inst) x_1 x_2))) (op x_3)))
      (Quiver.Hom.unop (Quiver.Hom.op (Iso.hom (α_ x x_1 x_2)) ⊵ₗ op x_3))
      (Iso.hom (Iso.unop (Iso.symm (αₗ (op x) (op (tensorObj.{v_1, u_1} (𝒞 := inst) x_1 x_2)) (op x_3)))) ≫
        Quiver.Hom.unop (op x ⊴ₗ Quiver.Hom.op (Iso.hom (Iso.unop (Iso.symm (αₗ (op x_1) (op x_2) (op x_3))))))))
    (Iso.hom (Iso.unop (Iso.symm (αₗ (op (tensorObj.{v_1, u_1} (𝒞 := inst) x x_1)) (op x_2) (op x_3)))) ≫
      Iso.hom
        (Iso.unop
          (Iso.symm
            (αₗ (op x) (op x_1)
              (op
                (unop
                  (@actionObj.{v_1, u_1, v_2, u_2} _ _ Category.opposite Category.opposite toMonoidalCategoryStruct _
                    (op x_2) (op x_3))))))))
have a : Eq.{v_2 + 1} (α :=
  op
      (unop
        (@actionObj.{v_1, u_1, v_2, u_2} _ _ Category.opposite Category.opposite toMonoidalCategoryStruct _ (op x)
          (op
            (unop
              (@actionObj.{v_1, u_1, v_2, u_2} _ _ Category.opposite Category.opposite toMonoidalCategoryStruct _
                (op x_1)
                (op
                  (unop
                    (@actionObj.{v_1, u_1, v_2, u_2} _ _ Category.opposite Category.opposite toMonoidalCategoryStruct _
                      (op x_2) (op x_3))))))))) ⟶
    op
      (unop
        (@actionObj.{v_1, u_1, v_2, u_2} _ _ Category.opposite Category.opposite toMonoidalCategoryStruct _
          (op (tensorObj.{v_1, u_1} (𝒞 := inst) (tensorObj.{v_1, u_1} (𝒞 := inst) x x_1) x_2)) (op x_3))))
  (Quiver.Hom.op
    (CategoryStruct.comp (Y :=
      unop
        (@actionObj.{v_1, u_1, v_2, u_2} _ _ Category.opposite Category.opposite toMonoidalCategoryStruct _
          (op (tensorObj.{v_1, u_1} (𝒞 := inst) x (tensorObj.{v_1, u_1} (𝒞 := inst) x_1 x_2))) (op x_3)))
      (Quiver.Hom.unop (Quiver.Hom.op (Iso.hom (α_ x x_1 x_2)) ⊵ₗ op x_3))
      (Iso.hom (Iso.unop (Iso.symm (αₗ (op x) (op (tensorObj.{v_1, u_1} (𝒞 := inst) x_1 x_2)) (op x_3)))) ≫
        Quiver.Hom.unop (op x ⊴ₗ Quiver.Hom.op (Iso.hom (Iso.unop (Iso.symm (αₗ (op x_1) (op x_2) (op x_3)))))))))
  (Quiver.Hom.op
    (Iso.hom (Iso.unop (Iso.symm (αₗ (op (tensorObj.{v_1, u_1} (𝒞 := inst) x x_1)) (op x_2) (op x_3)))) ≫
      Iso.hom
        (Iso.unop
          (Iso.symm
            (αₗ (op x) (op x_1)
              (op
                (unop
                  (@actionObj.{v_1, u_1, v_2, u_2} _ _ Category.opposite Category.opposite toMonoidalCategoryStruct _
                    (op x_2) (op x_3)))))))))
Tactic: apply Quiver.Hom.op_inj