-- Module: Mathlib.CategoryTheory.Preadditive.Mat
Goal:
C : Type u₁
inst : Category.{v₁, u₁} C
inst_1 : Preadditive.{v₁, u₁} C
D : Type u₁
inst_2 : Category.{v₁, u₁} D
inst_3 : Preadditive.{v₁, u₁} D
inst_4 : HasFiniteBiproducts.{v₁, u₁} D
F : Functor.{v₁, v₁, u₁, u₁} C D
inst_5 : F.Additive
L : Functor.{v₁, v₁, max 1 u₁, u₁} (Mat_ C) D
inst_6 : L.Additive
α : embedding C ⋙ L ≅ F
X Y : Mat_ C
f : Quiver.Hom.{v₁, max 1 u₁} X Y
simp :
  Eq (α := L.obj X ⟶ Functor.obj (lift F) Y)
    (CategoryStruct.comp (Y :=
      biproduct.{0, v₁, u₁} fun (i : X.ι) ↦ L.obj (Functor.obj.{v₁, v₁, u₁, max 1 u₁} (embedding C) (X.X i)))
      (Iso.hom (additiveObjIsoBiproduct L X) :
        L.obj X ⟶
          biproduct.{0, v₁, u₁} fun (i : X.ι) ↦ L.obj (Functor.obj.{v₁, v₁, u₁, max 1 u₁} (embedding C) (X.X i)))
      (CategoryStruct.comp (Y :=
          biproduct.{0, v₁, u₁} fun (i : Y.ι) ↦ L.obj (Functor.obj.{v₁, v₁, u₁, max 1 u₁} (embedding C) (Y.X i)))
          (biproduct.matrix fun (i : X.ι) (j : Y.ι) ↦ L.map (Functor.map (embedding C) (f i j)) :
            Quiver.Hom.{v₁, u₁} (V := D)
              (biproduct.{0, v₁, u₁} fun (i : X.ι) ↦ L.obj (Functor.obj.{v₁, v₁, u₁, max 1 u₁} (embedding C) (X.X i)))
              (biproduct.{0, v₁, u₁} fun (j : Y.ι) ↦ L.obj (Functor.obj.{v₁, v₁, u₁, max 1 u₁} (embedding C) (Y.X j))))
          (CategoryStruct.comp (Y := biproduct.{0, v₁, u₁} fun (i : Y.ι) ↦ F.obj (Y.X i))
              (biproduct.map fun (b : Y.ι) ↦ Iso.hom (α.app (Y.X b)))
              (CategoryStruct.comp (Y := biproduct.{0, v₁, u₁} fun (i : Y.ι) ↦ (embedding C ⋙ lift F).obj (Y.X i))
                (biproduct.map fun (b : Y.ι) ↦ Iso.hom (Iso.app (Iso.symm (embeddingLiftIso F)) (Y.X b)) :
                  Quiver.Hom.{v₁, u₁} (V := D) (biproduct.{0, v₁, u₁} fun (i : Y.ι) ↦ F.obj (Y.X i))
                    (biproduct.{0, v₁, u₁} fun (i : Y.ι) ↦ (embedding C ⋙ lift F).obj (Y.X i)))
                (Iso.inv (additiveObjIsoBiproduct (lift F) Y) :
                  (biproduct.{0, v₁, u₁} fun (i : Y.ι) ↦ (embedding C ⋙ lift F).obj (Y.X i)) ⟶
                    Functor.obj (lift F) Y)) :
            (biproduct.{0, v₁, u₁} fun (i : Y.ι) ↦ L.obj (Functor.obj.{v₁, v₁, u₁, max 1 u₁} (embedding C) (Y.X i))) ⟶
              Functor.obj (lift F) Y) :
        (biproduct.{0, v₁, u₁} fun (i : X.ι) ↦ L.obj (Functor.obj.{v₁, v₁, u₁, max 1 u₁} (embedding C) (X.X i))) ⟶
          Functor.obj (lift F) Y))
    (CategoryStruct.comp (Y :=
        biproduct.{0, v₁, u₁} fun (i : X.ι) ↦ L.obj (Functor.obj.{v₁, v₁, u₁, max 1 u₁} (embedding C) (X.X i)))
        (Iso.hom (additiveObjIsoBiproduct L X) :
          L.obj X ⟶
            biproduct.{0, v₁, u₁} fun (i : X.ι) ↦ L.obj (Functor.obj.{v₁, v₁, u₁, max 1 u₁} (embedding C) (X.X i)))
        (CategoryStruct.comp (Y := biproduct.{0, v₁, u₁} fun (i : X.ι) ↦ F.obj (X.X i))
            (biproduct.map fun (b : X.ι) ↦ Iso.hom (α.app (X.X b)))
            (CategoryStruct.comp (Y := biproduct.{0, v₁, u₁} fun (i : X.ι) ↦ (embedding C ⋙ lift F).obj (X.X i))
              (biproduct.map fun (b : X.ι) ↦ Iso.hom (Iso.app (Iso.symm (embeddingLiftIso F)) (X.X b)) :
                Quiver.Hom.{v₁, u₁} (V := D) (biproduct.{0, v₁, u₁} fun (i : X.ι) ↦ F.obj (X.X i))
                  (biproduct.{0, v₁, u₁} fun (i : X.ι) ↦ (embedding C ⋙ lift F).obj (X.X i)))
              (Iso.inv (additiveObjIsoBiproduct (lift F) X) :
                (biproduct.{0, v₁, u₁} fun (i : X.ι) ↦ (embedding C ⋙ lift F).obj (X.X i)) ⟶ Functor.obj (lift F) X)) :
          (biproduct.{0, v₁, u₁} fun (i : X.ι) ↦ L.obj (Functor.obj.{v₁, v₁, u₁, max 1 u₁} (embedding C) (X.X i))) ⟶
            Functor.obj (lift F) X) ≫
      Functor.map (lift F) f)
⊢ Eq (α := L.obj X ⟶ Functor.obj (lift F) Y)
    (L.map f ≫
      CategoryStruct.comp (Y :=
        biproduct.{0, v₁, u₁} fun (i : Y.ι) ↦ L.obj (Functor.obj.{v₁, v₁, u₁, max 1 u₁} (embedding C) (Y.X i)))
        (Iso.hom (additiveObjIsoBiproduct L Y) :
          L.obj Y ⟶
            biproduct.{0, v₁, u₁} fun (i : Y.ι) ↦ L.obj (Functor.obj.{v₁, v₁, u₁, max 1 u₁} (embedding C) (Y.X i)))
        (CategoryStruct.comp (Y := biproduct.{0, v₁, u₁} fun (i : Y.ι) ↦ F.obj (Y.X i))
            (biproduct.map fun (b : Y.ι) ↦ Iso.hom (α.app (Y.X b)))
            (CategoryStruct.comp (Y := biproduct.{0, v₁, u₁} fun (i : Y.ι) ↦ (embedding C ⋙ lift F).obj (Y.X i))
              (biproduct.map fun (b : Y.ι) ↦ Iso.hom (Iso.app (Iso.symm (embeddingLiftIso F)) (Y.X b)) :
                Quiver.Hom.{v₁, u₁} (V := D) (biproduct.{0, v₁, u₁} fun (i : Y.ι) ↦ F.obj (Y.X i))
                  (biproduct.{0, v₁, u₁} fun (i : Y.ι) ↦ (embedding C ⋙ lift F).obj (Y.X i)))
              (Iso.inv (additiveObjIsoBiproduct (lift F) Y) :
                (biproduct.{0, v₁, u₁} fun (i : Y.ι) ↦ (embedding C ⋙ lift F).obj (Y.X i)) ⟶ Functor.obj (lift F) Y)) :
          (biproduct.{0, v₁, u₁} fun (i : Y.ι) ↦ L.obj (Functor.obj.{v₁, v₁, u₁, max 1 u₁} (embedding C) (Y.X i))) ⟶
            Functor.obj (lift F) Y))
    (CategoryStruct.comp (Y :=
        biproduct.{0, v₁, u₁} fun (i : X.ι) ↦ L.obj (Functor.obj.{v₁, v₁, u₁, max 1 u₁} (embedding C) (X.X i)))
        (Iso.hom (additiveObjIsoBiproduct L X) :
          L.obj X ⟶
            biproduct.{0, v₁, u₁} fun (i : X.ι) ↦ L.obj (Functor.obj.{v₁, v₁, u₁, max 1 u₁} (embedding C) (X.X i)))
        (CategoryStruct.comp (Y := biproduct.{0, v₁, u₁} fun (i : X.ι) ↦ F.obj (X.X i))
            (biproduct.map fun (b : X.ι) ↦ Iso.hom (α.app (X.X b)))
            (CategoryStruct.comp (Y := biproduct.{0, v₁, u₁} fun (i : X.ι) ↦ (embedding C ⋙ lift F).obj (X.X i))
              (biproduct.map fun (b : X.ι) ↦ Iso.hom (Iso.app (Iso.symm (embeddingLiftIso F)) (X.X b)) :
                Quiver.Hom.{v₁, u₁} (V := D) (biproduct.{0, v₁, u₁} fun (i : X.ι) ↦ F.obj (X.X i))
                  (biproduct.{0, v₁, u₁} fun (i : X.ι) ↦ (embedding C ⋙ lift F).obj (X.X i)))
              (Iso.inv (additiveObjIsoBiproduct (lift F) X) :
                (biproduct.{0, v₁, u₁} fun (i : X.ι) ↦ (embedding C ⋙ lift F).obj (X.X i)) ⟶ Functor.obj (lift F) X)) :
          (biproduct.{0, v₁, u₁} fun (i : X.ι) ↦ L.obj (Functor.obj.{v₁, v₁, u₁, max 1 u₁} (embedding C) (X.X i))) ⟶
            Functor.obj (lift F) X) ≫
      Functor.map (lift F) f)

Tactic:
simp only [additiveObjIsoBiproduct_naturality_assoc]

Premises used: CategoryTheory.Mat_.additiveObjIsoBiproduct_naturality_assoc