-- Module: Mathlib.CategoryTheory.Monoidal.Comon_
Goal:
C : Type u₁
inst : Category.{v₁, u₁} C
inst_1 : MonoidalCategory.{v₁, u₁} C
M N O : C
inst_2 : ComonObj M
inst_3 : ComonObj N
inst_4 : ComonObj O
D : Type u₂
inst_5 : Category.{v₂, u₂} D
inst_6 : MonoidalCategory.{v₂, u₂} D
A : C
inst_7 : ComonObj A
F : Functor.{v₁, v₂, u₁, u₂} C D
inst_8 : F.OplaxMonoidal
simp_rw :
  Eq (α := F.obj A ⟶ tensorObj.{v₂, u₂} (𝒞 := inst_5) (F.obj A) (tensorUnit.{v₂, u₂} D (𝒞 := inst_5)))
    (CategoryStruct.comp (Y := F.obj (tensorObj.{v₁, u₁} (𝒞 := inst) A A)) (F.map Δ) (δ F A A) ≫
      CategoryStruct.comp (Y := tensorObj.{v₂, u₂} (𝒞 := inst_5) (F.obj A) (F.obj (tensorUnit.{v₁, u₁} C (𝒞 := inst))))
        (F.obj A ◁ F.map ε) (F.obj A ◁ η F))
    (Iso.inv (ρ_ (F.obj A)))
simp_rw₁ :
  Eq (α := F.obj A ⟶ tensorObj.{v₂, u₂} (𝒞 := inst_5) (F.obj A) (tensorUnit.{v₂, u₂} D (𝒞 := inst_5)))
    (CategoryStruct.comp (Y := F.obj (tensorObj.{v₁, u₁} (𝒞 := inst) A A)) (F.map Δ)
      (δ F A A ≫
        CategoryStruct.comp (Y :=
          tensorObj.{v₂, u₂} (𝒞 := inst_5) (F.obj A) (F.obj (tensorUnit.{v₁, u₁} C (𝒞 := inst)))) (F.obj A ◁ F.map ε)
          (F.obj A ◁ η F)))
    (Iso.inv (ρ_ (F.obj A)))
simp_rw₂ :
  Eq (α := F.obj A ⟶ tensorObj.{v₂, u₂} (𝒞 := inst_5) (F.obj A) (tensorUnit.{v₂, u₂} D (𝒞 := inst_5)))
    (CategoryStruct.comp (Y := F.obj (tensorObj.{v₁, u₁} (𝒞 := inst) A A)) (F.map Δ)
      (CategoryStruct.comp (Y := F.obj (tensorObj.{v₁, u₁} (𝒞 := inst) A (tensorUnit.{v₁, u₁} C (𝒞 := inst))))
        (F.map (A ◁ ε)) (δ F A (tensorUnit.{v₁, u₁} C (𝒞 := inst)) ≫ F.obj A ◁ η F)))
    (Iso.inv (ρ_ (F.obj A)))
simp_rw₃ :
  Eq (α := F.obj A ⟶ tensorObj.{v₂, u₂} (𝒞 := inst_5) (F.obj A) (tensorUnit.{v₂, u₂} D (𝒞 := inst_5)))
    (CategoryStruct.comp (Y := F.obj (tensorObj.{v₁, u₁} (𝒞 := inst) A A)) (F.map Δ)
      (CategoryStruct.comp (Y := F.obj (tensorObj.{v₁, u₁} (𝒞 := inst) A (tensorUnit.{v₁, u₁} C (𝒞 := inst))))
        (F.map (A ◁ ε)) (δ F A (tensorUnit.{v₁, u₁} C (𝒞 := inst)) ≫ F.obj A ◁ η F)))
    (CategoryStruct.comp (Y := F.obj (tensorObj.{v₁, u₁} (𝒞 := inst) A (tensorUnit.{v₁, u₁} C (𝒞 := inst))))
      (F.map (Iso.inv (ρ_ A))) (δ F A (tensorUnit.{v₁, u₁} C (𝒞 := inst)) ≫ F.obj A ◁ η F))
simp_rw₄ :
  Eq (α := F.obj A ⟶ tensorObj.{v₂, u₂} (𝒞 := inst_5) (F.obj A) (tensorUnit.{v₂, u₂} D (𝒞 := inst_5)))
    (CategoryStruct.comp (Y := F.obj (tensorObj.{v₁, u₁} (𝒞 := inst) A (tensorUnit.{v₁, u₁} C (𝒞 := inst))))
      (F.map (Δ ≫ A ◁ ε)) (δ F A (tensorUnit.{v₁, u₁} C (𝒞 := inst)) ≫ F.obj A ◁ η F))
    (CategoryStruct.comp (Y := F.obj (tensorObj.{v₁, u₁} (𝒞 := inst) A (tensorUnit.{v₁, u₁} C (𝒞 := inst))))
      (F.map (Iso.inv (ρ_ A))) (δ F A (tensorUnit.{v₁, u₁} C (𝒞 := inst)) ≫ F.obj A ◁ η F))
⊢ Eq (α := F.obj A ⟶ tensorObj.{v₂, u₂} (𝒞 := inst_5) (F.obj A) (tensorUnit.{v₂, u₂} D (𝒞 := inst_5)))
    (CategoryStruct.comp (Y := F.obj (tensorObj.{v₁, u₁} (𝒞 := inst) A A)) (F.map Δ) (δ F A A) ≫
      F.obj A ◁ CategoryStruct.comp (Y := F.obj (tensorUnit.{v₁, u₁} C (𝒞 := inst))) (F.map ε) (η F))
    (Iso.inv (ρ_ (F.obj A)))

Tactic:
simp_rw [MonoidalCategory.whiskerLeft_comp, Category.assoc, δ_natural_right_assoc,
      right_unitality, ← F.map_comp_assoc, comul_counit]

Premises used: CategoryTheory.Category.assoc, CategoryTheory.ComonObj.comul_counit, CategoryTheory.MonoidalCategory.whiskerLeft_comp, CategoryTheory.Functor.map_comp_assoc, CategoryTheory.Functor.OplaxMonoidal.right_unitality, CategoryTheory.Functor.OplaxMonoidal.δ_natural_right_assoc