-- Module: Mathlib.Algebra.Category.CoalgCat.Monoidal
Goal:
R : Type u
inst : CommRing R
X₁ X₂ : CoalgCat R
X : X₁ ⟶ X₂
f : CoalgCat R
hf :
  ∀
    (x :
      (↑(Functor.obj
            (forget₂ (CoalgCat R) (FC := fun (x1 x2 : CoalgCat R) ↦
              (↑x1.toModuleCat : Type u) →ₗc[R] (↑x2.toModuleCat : Type u)) (CC := fun (X : CoalgCat R) ↦
              (↑X.toModuleCat : Type u)) (ModuleCat R) (FD := fun (x1 x2 : ModuleCat R) ↦
              (↑x1 : Type u) →ₗ[R] (↑x2 : Type u)) (CD := ModuleCat.carrier))
            (MonoidalCategoryStruct.tensorObj (𝒞 := category) X₁ f)) :
        Type u)),
    Eq (α :=
      (↑(Functor.obj
            (forget₂ (CoalgCat R) (FC := fun (x1 x2 : CoalgCat R) ↦
              (↑x1.toModuleCat : Type u) →ₗc[R] (↑x2.toModuleCat : Type u)) (CC := fun (X : CoalgCat R) ↦
              (↑X.toModuleCat : Type u)) (ModuleCat R) (FD := fun (x1 x2 : ModuleCat R) ↦
              (↑x1 : Type u) →ₗ[R] (↑x2 : Type u)) (CD := ModuleCat.carrier))
            (MonoidalCategoryStruct.tensorObj (𝒞 := category) X₂ f)) :
        Type u))
      ((ModuleCat.Hom.hom
              (CategoryTheory.Functor.map
                (forget₂ (CoalgCat R) (FC := fun (x1 x2 : CoalgCat R) ↦
                  (↑x1.toModuleCat : Type u) →ₗc[R] (↑x2.toModuleCat : Type u)) (CC := fun (X : CoalgCat R) ↦
                  (↑X.toModuleCat : Type u)) (ModuleCat R) (FD := fun (x1 x2 : ModuleCat R) ↦
                  (↑x1 : Type u) →ₗ[R] (↑x2 : Type u)) (CD := ModuleCat.carrier))
                (X ▷ f)) :
            (a : (↑((forget₂ (CoalgCat R) (ModuleCat R)).obj (X₁ ⊗ f)) : Type u)) →
              (↑((forget₂ (CoalgCat R) (ModuleCat R)).obj (X₂ ⊗ f)) : Type u))
          x :
        (↑(Functor.obj
              (forget₂ (CoalgCat R) (FC := fun (x1 x2 : CoalgCat R) ↦
                (↑x1.toModuleCat : Type u) →ₗc[R] (↑x2.toModuleCat : Type u)) (CC := fun (X : CoalgCat R) ↦
                (↑X.toModuleCat : Type u)) (ModuleCat R) (FD := fun (x1 x2 : ModuleCat R) ↦
                (↑x1 : Type u) →ₗ[R] (↑x2 : Type u)) (CD := ModuleCat.carrier))
              (MonoidalCategoryStruct.tensorObj (𝒞 := category) X₂ f)) :
          Type u))
      ((ModuleCat.Hom.hom
              (Iso.inv
                  (Iso.refl
                    (MonoidalCategoryStruct.tensorObj (𝒞 := ModuleCat.moduleCategory R)
                      (Functor.obj
                        (forget₂ (CoalgCat R) (FC := fun (x1 x2 : CoalgCat R) ↦
                          (↑x1.toModuleCat : Type u) →ₗc[R] (↑x2.toModuleCat : Type u)) (CC := fun (X : CoalgCat R) ↦
                          (↑X.toModuleCat : Type u)) (ModuleCat R) (FD := fun (x1 x2 : ModuleCat R) ↦
                          (↑x1 : Type u) →ₗ[R] (↑x2 : Type u)) (CD := ModuleCat.carrier))
                        X₁)
                      (Functor.obj
                        (forget₂ (CoalgCat R) (FC := fun (x1 x2 : CoalgCat R) ↦
                          (↑x1.toModuleCat : Type u) →ₗc[R] (↑x2.toModuleCat : Type u)) (CC := fun (X : CoalgCat R) ↦
                          (↑X.toModuleCat : Type u)) (ModuleCat R) (FD := fun (x1 x2 : ModuleCat R) ↦
                          (↑x1 : Type u) →ₗ[R] (↑x2 : Type u)) (CD := ModuleCat.carrier))
                        f))) ≫
                CategoryTheory.Functor.map
                      (forget₂ (CoalgCat R) (FC := fun (x1 x2 : CoalgCat R) ↦
                        (↑x1.toModuleCat : Type u) →ₗc[R] (↑x2.toModuleCat : Type u)) (CC := fun (X : CoalgCat R) ↦
                        (↑X.toModuleCat : Type u)) (ModuleCat R) (FD := fun (x1 x2 : ModuleCat R) ↦
                        (↑x1 : Type u) →ₗ[R] (↑x2 : Type u)) (CD := ModuleCat.carrier))
                      X ▷
                    Functor.obj
                      (forget₂ (CoalgCat R) (FC := fun (x1 x2 : CoalgCat R) ↦
                        (↑x1.toModuleCat : Type u) →ₗc[R] (↑x2.toModuleCat : Type u)) (CC := fun (X : CoalgCat R) ↦
                        (↑X.toModuleCat : Type u)) (ModuleCat R) (FD := fun (x1 x2 : ModuleCat R) ↦
                        (↑x1 : Type u) →ₗ[R] (↑x2 : Type u)) (CD := ModuleCat.carrier))
                      f ≫
                  Iso.hom
                    (Iso.refl
                      (MonoidalCategoryStruct.tensorObj (𝒞 := ModuleCat.moduleCategory R)
                        (Functor.obj
                          (forget₂ (CoalgCat R) (FC := fun (x1 x2 : CoalgCat R) ↦
                            (↑x1.toModuleCat : Type u) →ₗc[R] (↑x2.toModuleCat : Type u)) (CC := fun (X : CoalgCat R) ↦
                            (↑X.toModuleCat : Type u)) (ModuleCat R) (FD := fun (x1 x2 : ModuleCat R) ↦
                            (↑x1 : Type u) →ₗ[R] (↑x2 : Type u)) (CD := ModuleCat.carrier))
                          X₂)
                        (Functor.obj
                          (forget₂ (CoalgCat R) (FC := fun (x1 x2 : CoalgCat R) ↦
                            (↑x1.toModuleCat : Type u) →ₗc[R] (↑x2.toModuleCat : Type u)) (CC := fun (X : CoalgCat R) ↦
                            (↑X.toModuleCat : Type u)) (ModuleCat R) (FD := fun (x1 x2 : ModuleCat R) ↦
                            (↑x1 : Type u) →ₗ[R] (↑x2 : Type u)) (CD := ModuleCat.carrier))
                          f)))) :
            (a : (↑((forget₂ (CoalgCat R) (ModuleCat R)).obj (X₁ ⊗ f)) : Type u)) →
              (↑((forget₂ (CoalgCat R) (ModuleCat R)).obj (X₂ ⊗ f)) : Type u))
          x :
        (↑(Functor.obj
              (forget₂ (CoalgCat R) (FC := fun (x1 x2 : CoalgCat R) ↦
                (↑x1.toModuleCat : Type u) →ₗc[R] (↑x2.toModuleCat : Type u)) (CC := fun (X : CoalgCat R) ↦
                (↑X.toModuleCat : Type u)) (ModuleCat R) (FD := fun (x1 x2 : ModuleCat R) ↦
                (↑x1 : Type u) →ₗ[R] (↑x2 : Type u)) (CD := ModuleCat.carrier))
              (MonoidalCategoryStruct.tensorObj (𝒞 := category) X₂ f)) :
          Type u))
⊢ CategoryTheory.Functor.map
      (forget₂ (CoalgCat R) (FC := fun (x1 x2 : CoalgCat R) ↦
        (↑x1.toModuleCat : Type u) →ₗc[R] (↑x2.toModuleCat : Type u)) (CC := fun (X : CoalgCat R) ↦
        (↑X.toModuleCat : Type u)) (ModuleCat R) (FD := fun (x1 x2 : ModuleCat R) ↦ (↑x1 : Type u) →ₗ[R] (↑x2 : Type u))
        (CD := ModuleCat.carrier))
      (X ▷ f) =
    Iso.inv
        (Iso.refl
          (MonoidalCategoryStruct.tensorObj (𝒞 := ModuleCat.moduleCategory R)
            (Functor.obj
              (forget₂ (CoalgCat R) (FC := fun (x1 x2 : CoalgCat R) ↦
                (↑x1.toModuleCat : Type u) →ₗc[R] (↑x2.toModuleCat : Type u)) (CC := fun (X : CoalgCat R) ↦
                (↑X.toModuleCat : Type u)) (ModuleCat R) (FD := fun (x1 x2 : ModuleCat R) ↦
                (↑x1 : Type u) →ₗ[R] (↑x2 : Type u)) (CD := ModuleCat.carrier))
              X₁)
            (Functor.obj
              (forget₂ (CoalgCat R) (FC := fun (x1 x2 : CoalgCat R) ↦
                (↑x1.toModuleCat : Type u) →ₗc[R] (↑x2.toModuleCat : Type u)) (CC := fun (X : CoalgCat R) ↦
                (↑X.toModuleCat : Type u)) (ModuleCat R) (FD := fun (x1 x2 : ModuleCat R) ↦
                (↑x1 : Type u) →ₗ[R] (↑x2 : Type u)) (CD := ModuleCat.carrier))
              f))) ≫
      CategoryTheory.Functor.map
            (forget₂ (CoalgCat R) (FC := fun (x1 x2 : CoalgCat R) ↦
              (↑x1.toModuleCat : Type u) →ₗc[R] (↑x2.toModuleCat : Type u)) (CC := fun (X : CoalgCat R) ↦
              (↑X.toModuleCat : Type u)) (ModuleCat R) (FD := fun (x1 x2 : ModuleCat R) ↦
              (↑x1 : Type u) →ₗ[R] (↑x2 : Type u)) (CD := ModuleCat.carrier))
            X ▷
          Functor.obj
            (forget₂ (CoalgCat R) (FC := fun (x1 x2 : CoalgCat R) ↦
              (↑x1.toModuleCat : Type u) →ₗc[R] (↑x2.toModuleCat : Type u)) (CC := fun (X : CoalgCat R) ↦
              (↑X.toModuleCat : Type u)) (ModuleCat R) (FD := fun (x1 x2 : ModuleCat R) ↦
              (↑x1 : Type u) →ₗ[R] (↑x2 : Type u)) (CD := ModuleCat.carrier))
            f ≫
        Iso.hom
          (Iso.refl
            (MonoidalCategoryStruct.tensorObj (𝒞 := ModuleCat.moduleCategory R)
              (Functor.obj
                (forget₂ (CoalgCat R) (FC := fun (x1 x2 : CoalgCat R) ↦
                  (↑x1.toModuleCat : Type u) →ₗc[R] (↑x2.toModuleCat : Type u)) (CC := fun (X : CoalgCat R) ↦
                  (↑X.toModuleCat : Type u)) (ModuleCat R) (FD := fun (x1 x2 : ModuleCat R) ↦
                  (↑x1 : Type u) →ₗ[R] (↑x2 : Type u)) (CD := ModuleCat.carrier))
                X₂)
              (Functor.obj
                (forget₂ (CoalgCat R) (FC := fun (x1 x2 : CoalgCat R) ↦
                  (↑x1.toModuleCat : Type u) →ₗc[R] (↑x2.toModuleCat : Type u)) (CC := fun (X : CoalgCat R) ↦
                  (↑X.toModuleCat : Type u)) (ModuleCat R) (FD := fun (x1 x2 : ModuleCat R) ↦
                  (↑x1 : Type u) →ₗ[R] (↑x2 : Type u)) (CD := ModuleCat.carrier))
                f)))

Tactic:
ext