Proposition is_power_self_enrichment_power_cone_eq_2 (w : V) : internal_swap_arg v₁ v₂ w · is_power_enriched_map (self_enrichment V) v₁ v₂ self_enrichment_power_cone w = identity _. Proof. use internal_funext. intros a₁ h₁. rewrite tensor_comp_r_id_r. unfold is_power_enriched_map. rewrite !assoc'. rewrite internal_beta ; cbn. use internal_funext. intros a₂ h₂. rewrite !tensor_comp_r_id_r. rewrite !assoc'. unfold internal_comp. rewrite internal_beta. etrans. { apply maponpaths. rewrite !assoc. rewrite <- tensor_comp_mor. rewrite id_left. rewrite tensor_sym_mon_braiding. rewrite tensor_comp_id_r. rewrite !assoc'. apply maponpaths. rewrite !assoc. rewrite tensor_lassociator. rewrite !assoc'. apply maponpaths. rewrite tensor_id_id. rewrite !assoc. rewrite <- tensor_split'. rewrite tensor_split. rewrite !assoc'. rewrite internal_beta. rewrite !assoc. rewrite tensor_sym_mon_braiding. rewrite !assoc'. apply idpath. } etrans. { rewrite !assoc. rewrite <- tensor_comp_mor. rewrite id_right. rewrite tensor_sym_mon_braiding. rewrite tensor_split. rewrite tensor_comp_id_r. rewrite !assoc'. do 2 apply maponpaths. rewrite !assoc. rewrite tensor_lassociator. rewrite !assoc'. apply maponpaths. rewrite !assoc. rewrite tensor_sym_mon_braiding. rewrite !assoc'. apply maponpaths. rewrite !assoc. rewrite <- tensor_comp_mor. rewrite id_right. unfold internal_swap_arg. rewrite internal_beta. rewrite tensor_split. rewrite !assoc'. rewrite internal_beta. apply idpath. } rewrite !assoc. do 2 apply maponpaths_2. etrans. { do 3 apply maponpaths_2. rewrite !assoc'. rewrite <- tensor_sym_mon_braiding. rewrite !assoc. apply maponpaths_2. rewrite !assoc'. etrans. { do 2 apply maponpaths. rewrite <- tensor_id_id. rewrite <- tensor_lassociator. apply idpath. } rewrite !assoc. apply maponpaths_2. rewrite !assoc'. rewrite <- tensor_comp_id_r. rewrite <- tensor_sym_mon_braiding. rewrite tensor_comp_id_r. rewrite !assoc. apply maponpaths_2. rewrite <- !tensor_comp_mor. rewrite !id_right, id_left. apply idpath. } rewrite !assoc'. refine (_ @ id_right _). apply maponpaths. etrans. { apply maponpaths. rewrite !assoc. rewrite sym_mon_hexagon_lassociator. rewrite !assoc'. etrans. { do 2 apply maponpaths. rewrite !assoc. rewrite <- tensor_comp_id_l. rewrite sym_mon_braiding_inv. rewrite tensor_id_id. apply id_left. } rewrite mon_lassociator_rassociator. apply id_right. } rewrite <- tensor_comp_id_r. rewrite sym_mon_braiding_inv. apply tensor_id_id. 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.