-- Lean 4 proof step from Mathlib.CategoryTheory.Monoidal.Comon_ (goal)
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) (tensorObj.{v₂, u₂} (𝒞 := inst_5) (F.obj A) (F.obj A)))
    (CategoryStruct.comp (Y := F.obj (tensorObj.{v₁, u₁} (𝒞 := inst) A A)) (F.map Δ) (δ F A A) ≫
      F.obj A ◁ CategoryStruct.comp (Y := F.obj (tensorObj.{v₁, u₁} (𝒞 := inst) A A)) (F.map Δ) (δ F A A))
    (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 (tensorObj.{v₁, u₁} (𝒞 := inst) A A)) (F.obj A))
          (F.map Δ ▷ F.obj A) (δ F A A ▷ F.obj A) ≫
        Iso.hom (α_ (F.obj A) (F.obj A) (F.obj A)))
simp_rw₁ :
  Eq (α := F.obj A ⟶ tensorObj.{v₂, u₂} (𝒞 := inst_5) (F.obj A) (tensorObj.{v₂, u₂} (𝒞 := inst_5) (F.obj A) (F.obj A)))
    (CategoryStruct.comp (Y := F.obj (tensorObj.{v₁, u₁} (𝒞 := inst) A A)) (F.map Δ)
      (δ F A A ≫ F.obj A ◁ CategoryStruct.comp (Y := F.obj (tensorObj.{v₁, u₁} (𝒞 := inst) A A)) (F.map Δ) (δ F A A)))
    (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 (tensorObj.{v₁, u₁} (𝒞 := inst) A A)) (F.obj A)) (F.map Δ ▷ F.obj A)
          (δ F A A ▷ F.obj A ≫ Iso.hom (α_ (F.obj A) (F.obj A) (F.obj A)))))
simp_rw₂ :
  Eq (α := F.obj A ⟶ tensorObj.{v₂, u₂} (𝒞 := inst_5) (F.obj A) (tensorObj.{v₂, u₂} (𝒞 := inst_5) (F.obj A) (F.obj A)))
    (CategoryStruct.comp (Y := F.obj (tensorObj.{v₁, u₁} (𝒞 := inst) A A)) (F.map Δ)
      (δ F A A ≫ F.obj A ◁ CategoryStruct.comp (Y := F.obj (tensorObj.{v₁, u₁} (𝒞 := inst) A A)) (F.map Δ) (δ F A A)))
    (CategoryStruct.comp (Y := F.obj (tensorObj.{v₁, u₁} (𝒞 := inst) A A)) (F.map Δ)
      (CategoryStruct.comp (Y := F.obj (tensorObj.{v₁, u₁} (𝒞 := inst) (tensorObj.{v₁, u₁} (𝒞 := inst) A A) A))
        (F.map (Δ ▷ A))
        (δ F (tensorObj.{v₁, u₁} (𝒞 := inst) A A) A ≫ δ F A A ▷ F.obj A ≫ Iso.hom (α_ (F.obj A) (F.obj A) (F.obj A)))))
simp_rw₃ :
  Eq (α := F.obj A ⟶ tensorObj.{v₂, u₂} (𝒞 := inst_5) (F.obj A) (tensorObj.{v₂, u₂} (𝒞 := inst_5) (F.obj A) (F.obj A)))
    (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 (tensorObj.{v₁, u₁} (𝒞 := inst) A A))) (F.obj A ◁ F.map Δ)
          (F.obj A ◁ δ F A A)))
    (CategoryStruct.comp (Y := F.obj (tensorObj.{v₁, u₁} (𝒞 := inst) A A)) (F.map Δ)
      (CategoryStruct.comp (Y := F.obj (tensorObj.{v₁, u₁} (𝒞 := inst) (tensorObj.{v₁, u₁} (𝒞 := inst) A A) A))
        (F.map (Δ ▷ A))
        (δ F (tensorObj.{v₁, u₁} (𝒞 := inst) A A) A ≫ δ F A A ▷ F.obj A ≫ Iso.hom (α_ (F.obj A) (F.obj A) (F.obj A)))))
simp_rw₄ :
  Eq (α := F.obj A ⟶ tensorObj.{v₂, u₂} (𝒞 := inst_5) (F.obj A) (tensorObj.{v₂, u₂} (𝒞 := inst_5) (F.obj A) (F.obj A)))
    (CategoryStruct.comp (Y := F.obj (tensorObj.{v₁, u₁} (𝒞 := inst) A A)) (F.map Δ)
      (CategoryStruct.comp (Y := F.obj (tensorObj.{v₁, u₁} (𝒞 := inst) A (tensorObj.{v₁, u₁} (𝒞 := inst) A A)))
        (F.map (A ◁ Δ)) (δ F A (tensorObj.{v₁, u₁} (𝒞 := inst) A A) ≫ F.obj A ◁ δ F A A)))
    (CategoryStruct.comp (Y := F.obj (tensorObj.{v₁, u₁} (𝒞 := inst) A A)) (F.map Δ)
      (CategoryStruct.comp (Y := F.obj (tensorObj.{v₁, u₁} (𝒞 := inst) (tensorObj.{v₁, u₁} (𝒞 := inst) A A) A))
        (F.map (Δ ▷ A))
        (δ F (tensorObj.{v₁, u₁} (𝒞 := inst) A A) A ≫ δ F A A ▷ F.obj A ≫ Iso.hom (α_ (F.obj A) (F.obj A) (F.obj A)))))
simp_rw₅ :
  Eq (α := F.obj A ⟶ tensorObj.{v₂, u₂} (𝒞 := inst_5) (F.obj A) (tensorObj.{v₂, u₂} (𝒞 := inst_5) (F.obj A) (F.obj A)))
    (CategoryStruct.comp (Y := F.obj (tensorObj.{v₁, u₁} (𝒞 := inst) A (tensorObj.{v₁, u₁} (𝒞 := inst) A A)))
      (F.map (Δ ≫ A ◁ Δ)) (δ F A (tensorObj.{v₁, u₁} (𝒞 := inst) A A) ≫ F.obj A ◁ δ F A A))
    (CategoryStruct.comp (Y := F.obj (tensorObj.{v₁, u₁} (𝒞 := inst) (tensorObj.{v₁, u₁} (𝒞 := inst) A A) A))
      (F.map (Δ ≫ Δ ▷ A))
      (δ F (tensorObj.{v₁, u₁} (𝒞 := inst) A A) A ≫ δ F A A ▷ F.obj A ≫ Iso.hom (α_ (F.obj A) (F.obj A) (F.obj A))))
simp_rw₆ :
  Eq (α := F.obj A ⟶ tensorObj.{v₂, u₂} (𝒞 := inst_5) (F.obj A) (tensorObj.{v₂, u₂} (𝒞 := inst_5) (F.obj A) (F.obj A)))
    (CategoryStruct.comp (Y := F.obj (tensorObj.{v₁, u₁} (𝒞 := inst) A (tensorObj.{v₁, u₁} (𝒞 := inst) A A)))
      (F.map (Δ ≫ Δ ▷ A ≫ Iso.hom (α_ A A A))) (δ F A (tensorObj.{v₁, u₁} (𝒞 := inst) A A) ≫ F.obj A ◁ δ F A A))
    (CategoryStruct.comp (Y := F.obj (tensorObj.{v₁, u₁} (𝒞 := inst) (tensorObj.{v₁, u₁} (𝒞 := inst) A A) A))
      (F.map (Δ ≫ Δ ▷ A))
      (δ F (tensorObj.{v₁, u₁} (𝒞 := inst) A A) A ≫ δ F A A ▷ F.obj A ≫ Iso.hom (α_ (F.obj A) (F.obj A) (F.obj A))))
simp_rw₇ :
  Eq (α := F.obj A ⟶ tensorObj.{v₂, u₂} (𝒞 := inst_5) (F.obj A) (tensorObj.{v₂, u₂} (𝒞 := inst_5) (F.obj A) (F.obj A)))
    (CategoryStruct.comp (Y := F.obj (tensorObj.{v₁, u₁} (𝒞 := inst) A (tensorObj.{v₁, u₁} (𝒞 := inst) A A)))
      (F.map Δ ≫ F.map (Δ ▷ A) ≫ F.map (Iso.hom (α_ A A A)))
      (δ F A (tensorObj.{v₁, u₁} (𝒞 := inst) A A) ≫ F.obj A ◁ δ F A A))
    (CategoryStruct.comp (Y := F.obj (tensorObj.{v₁, u₁} (𝒞 := inst) (tensorObj.{v₁, u₁} (𝒞 := inst) A A) A))
      (F.map Δ ≫ F.map (Δ ▷ A))
      (δ F (tensorObj.{v₁, u₁} (𝒞 := inst) A A) A ≫ δ F A A ▷ F.obj A ≫ Iso.hom (α_ (F.obj A) (F.obj A) (F.obj A))))
⊢ Eq (α := F.obj A ⟶ tensorObj.{v₂, u₂} (𝒞 := inst_5) (F.obj A) (tensorObj.{v₂, u₂} (𝒞 := inst_5) (F.obj A) (F.obj A)))
    (CategoryStruct.comp (Y := F.obj (tensorObj.{v₁, u₁} (𝒞 := inst) A A)) (F.map Δ) (δ F A A) ≫
      F.obj A ◁ CategoryStruct.comp (Y := F.obj (tensorObj.{v₁, u₁} (𝒞 := inst) A A)) (F.map Δ) (δ F A A))
    (CategoryStruct.comp (Y := F.obj (tensorObj.{v₁, u₁} (𝒞 := inst) A A)) (F.map Δ) (δ F A A) ≫
      CategoryStruct.comp (Y := F.obj (tensorObj.{v₁, u₁} (𝒞 := inst) A A)) (F.map Δ) (δ F A A) ▷ F.obj A ≫
        Iso.hom (α_ (F.obj A) (F.obj A) (F.obj A)))
have simp_rw₈ : Eq (α := F.obj A ⟶ tensorObj.{v₂, u₂} (𝒞 := inst_5) (F.obj A) (tensorObj.{v₂, u₂} (𝒞 := inst_5) (F.obj A) (F.obj A)))
  (CategoryStruct.comp (Y := F.obj (tensorObj.{v₁, u₁} (𝒞 := inst) A A)) (F.map Δ)
    (F.map (Δ ▷ A) ≫ F.map (Iso.hom (α_ A A A)) ≫ δ F A (tensorObj.{v₁, u₁} (𝒞 := inst) A A) ≫ F.obj A ◁ δ F A A))
  (CategoryStruct.comp (Y := F.obj (tensorObj.{v₁, u₁} (𝒞 := inst) A A)) (F.map Δ)
    (CategoryStruct.comp (Y := F.obj (tensorObj.{v₁, u₁} (𝒞 := inst) (tensorObj.{v₁, u₁} (𝒞 := inst) A A) A))
      (F.map (Δ ▷ A))
      (δ F (tensorObj.{v₁, u₁} (𝒞 := inst) A A) A ≫ δ F A A ▷ F.obj A ≫ Iso.hom (α_ (F.obj A) (F.obj A) (F.obj A)))))
Tactic: simp_rw [comp_whiskerRight, Category.assoc, δ_natural_left_assoc,
      MonoidalCategory.whiskerLeft_comp, δ_natural_right_assoc,
      ← F.map_comp_assoc, comul_assoc, F.map_comp, Category.assoc, associativity]