Proposition self_enrichment_equalizer_eq {a b : V} (φ₁ φ₂ : b --> a ⊸ e) (q : φ₁ · postcomp_arr (self_enrichment V) a (internal_to_arr (internal_lam (mon_lunitor e · p))) = φ₂ · postcomp_arr (self_enrichment V) a (internal_to_arr (internal_lam (mon_lunitor e · p)))) : φ₁ = φ₂. Proof. use internal_funext. intros w h. use (EqualizerInsEq Eq) ; cbn. rewrite !self_enrichment_postcomp in q. pose (maponpaths (λ z, z #⊗ identity _ · internal_eval _ _) q) as q'. cbn in q'. rewrite !tensor_comp_id_r in q'. rewrite !assoc' in q'. rewrite !internal_beta in q'. unfold internal_to_arr in q'. rewrite !assoc' in q'. rewrite !internal_beta in q'. rewrite !(maponpaths (λ z, _ · (_ · z)) (assoc _ _ _)) in q'. rewrite !mon_linvunitor_lunitor in q'. rewrite id_left in q'. rewrite tensor_split. rewrite !assoc'. rewrite q'. rewrite !assoc. rewrite <- tensor_split. apply idpath. Qed.
Require Import UniMath.Foundations.All. Require Import UniMath.MoreFoundations.All. Require Import UniMath.CategoryTheory.Core.Categories. Require Import UniMath.CategoryTheory.EnrichedCats.Enrichment. Require Import UniMath.CategoryTheory.EnrichedCats.Examples.SelfEnriched. Require Import UniMath.CategoryTheory.EnrichedCats.Limits.EnrichedTerminal. Require Import UniMath.CategoryTheory.EnrichedCats.Limits.EnrichedBinaryProducts. Require Import UniMath.CategoryTheory.EnrichedCats.Limits.EnrichedProducts. Require Import UniMath.CategoryTheory.EnrichedCats.Limits.EnrichedEqualizers. Require Import UniMath.CategoryTheory.EnrichedCats.Limits.EnrichedPowers. Require Import UniMath.CategoryTheory.Monoidal.Categories. Require Import UniMath.CategoryTheory.Monoidal.Structure.Symmetric. Require Import UniMath.CategoryTheory.Monoidal.Structure.Closed. Require Import UniMath.CategoryTheory.Limits.Terminal. Require Import UniMath.CategoryTheory.Limits.BinProducts. Require Import UniMath.CategoryTheory.Limits.Equalizers. Require Import UniMath.CategoryTheory.Limits.Products. Import MonoidalNotations.