/-- Implementation of `Mon_.equivLaxMonoidalFunctorPUnit`. -/
@[simps!]
def unitIso :
    𝟭 (LaxMonoidalFunctor (Discrete PUnit.{u + 1}) C) ≅ laxMonoidalToMon C ⋙ monToLaxMonoidal C :=
  NatIso.ofComponents
    (fun F =>
      MonoidalNatIso.ofComponents (fun _ => F.toFunctor.mapIso (eqToIso (by ext))) (by aesop_cat)
        (by aesop_cat) (by aesop_cat))
    (by 

Proof state:
C : Type u₁
inst✝¹ : Category.{v₁, u₁} C
inst✝ : MonoidalCategory C
⊢ ∀ {X Y : LaxMonoidalFunctor (Discrete PUnit.{u + 1}) C} (f : X ⟶ Y),
    (𝟭 (LaxMonoidalFunctor (Discrete PUnit.{u + 1}) C)).map f ≫
        ((fun F =>
              MonoidalNatIso.ofComponents (fun x => F.mapIso (eqToIso (_ : x = (trivial (Discrete PUnit.{u + 1})).X)))
                (_ :
                  ∀ {X Y : Discrete PUnit.{u + 1}} (f : X ⟶ Y),
                    ((𝟭 (LaxMonoidalFunctor (Discrete PUnit.{u + 1}) C)).obj F).map f ≫
                        ((fun x => F.mapIso (eqToIso (_ : x = (trivial (Discrete PUnit.{u + 1})).X))) Y).hom =
                      ((fun x => F.mapIso (eqToIso (_ : x = (trivial (Discrete PUnit.{u + 1})).X))) X).hom ≫
                        ((laxMonoidalToMon C ⋙ monToLaxMonoidal C).obj F).map f)
                (_ :
                  F.ε ≫ (F.mapIso (Iso.refl (𝟙_ (Discrete PUnit.{u + 1})))).hom =
                    F.ε ≫ F.map (𝟙 (𝟙_ (Discrete PUnit.{u + 1}))))
                (_ :
                  ∀ (X Y : Discrete PUnit.{u + 1}),
                    μ ((𝟭 (LaxMonoidalFunctor (Discrete PUnit.{u + 1}) C)).obj F) X Y ≫
                        ((fun x => F.mapIso (eqToIso (_ : x = (trivial (Discrete PUnit.{u + 1})).X))) (X ⊗ Y)).hom =
                      (((fun x => F.mapIso (eqToIso (_ : x = (trivial (Discrete PUnit.{u + 1})).X))) X).hom ⊗
                          ((fun x => F.mapIso (eqToIso (_ : x = (trivial (Discrete PUnit.{u + 1})).X))) Y).hom) ≫
                        μ ((laxMonoidalToMon C ⋙ monToLaxMonoidal C).obj F) X Y))
            Y).hom =
      ((fun F =>
              MonoidalNatIso.ofComponents (fun x => F.mapIso (eqToIso (_ : x = (trivial (Discrete PUnit.{u + 1})).X)))
                (_ :
                  ∀ {X Y : Discrete PUnit.{u + 1}} (f : X ⟶ Y),
                    ((𝟭 (LaxMonoidalFunctor (Discrete PUnit.{u + 1}) C)).obj F).map f ≫
                        ((fun x => F.mapIso (eqToIso (_ : x = (trivial (Discrete PUnit.{u + 1})).X))) Y).hom =
                      ((fun x => F.mapIso (eqToIso (_ : x = (trivial (Discrete PUnit.{u + 1})).X))) X).hom ≫
                        ((laxMonoidalToMon C ⋙ monToLaxMonoidal C).obj F).map f)
                (_ :
                  F.ε ≫ (F.mapIso (Iso.refl (𝟙_ (Discrete PUnit.{u + 1})))).hom =
                    F.ε ≫ F.map (𝟙 (𝟙_ (Discrete PUnit.{u + 1}))))
                (_ :
                  ∀ (X Y : Discrete PUnit.{u + 1}),
                    μ ((𝟭 (LaxMonoidalFunctor (Discrete PUnit.{u + 1}) C)).obj F) X Y ≫
                        ((fun x => F.mapIso (eqToIso (_ : x = (trivial (Discrete PUnit.{u + 1})).X))) (X ⊗ Y)).hom =
                      (((fun x => F.mapIso (eqToIso (_ : x = (trivial (Discrete PUnit.{u + 1})).X))) X).hom ⊗
                          ((fun x => F.mapIso (eqToIso (_ : x = (trivial (Discrete PUnit.{u + 1})).X))) Y).hom) ≫
                        μ ((laxMonoidalToMon C ⋙ monToLaxMonoidal C).obj F) X Y))
            X).hom ≫
        (laxMonoidalToMon C ⋙ monToLaxMonoidal C).map f

Next tactic:
aesop_cat