Proposition internal_curry_uncurry (v₁ v₂ v₃ : V) : internal_curry v₁ v₂ v₃ · internal_uncurry v₁ v₂ v₃ = identity _. Proof. use internal_funext. intros w h. rewrite tensor_comp_r_id_r. rewrite !assoc'. unfold internal_uncurry. rewrite internal_beta. rewrite tensor_split. rewrite <- tensor_id_id. rewrite !assoc'. etrans. { apply maponpaths. rewrite !assoc. rewrite tensor_rassociator. rewrite !assoc'. apply maponpaths. rewrite !assoc. rewrite <- tensor_comp_id_r. unfold internal_curry. rewrite !internal_beta. apply idpath. } rewrite !assoc. apply maponpaths_2. rewrite !assoc'. rewrite mon_rassociator_lassociator. apply id_right. Qed.
Require Import UniMath.Foundations.All. Require Import UniMath.MoreFoundations.All. Require Import UniMath.CategoryTheory.Core.Categories. Require Import UniMath.CategoryTheory.Core.Isos. Require Import UniMath.CategoryTheory.Core.Functors. Require Import UniMath.CategoryTheory.Core.NaturalTransformations. Require Import UniMath.CategoryTheory.FunctorCategory. Require Import UniMath.CategoryTheory.Adjunctions.Core. Require Import UniMath.CategoryTheory.Monoidal.WhiskeredBifunctors. Require Import UniMath.CategoryTheory.Monoidal.Categories. Require Import UniMath.CategoryTheory.Monoidal.Structure.Symmetric. Import MonoidalNotations.