Proposition internal_to_arr_comp {x y z : V} (f : x --> y) (g : y --> z) : f · g = internal_to_arr (mon_linvunitor I_{V} · internal_from_arr g #⊗ internal_from_arr f · internal_comp x y z). Proof. unfold internal_to_arr. rewrite tensor_comp_id_r. rewrite !assoc'. unfold internal_comp. rewrite internal_beta. rewrite tensor_comp_id_r. rewrite !assoc'. refine (!_). etrans. { do 2 apply maponpaths. rewrite !assoc. rewrite tensor_lassociator. rewrite !assoc'. apply maponpaths. rewrite !assoc. rewrite <- tensor_comp_mor. rewrite id_right. unfold internal_from_arr. rewrite internal_beta. rewrite tensor_split. rewrite !assoc'. rewrite internal_beta. apply idpath. } rewrite !assoc. apply maponpaths_2. rewrite !assoc'. rewrite tensor_lunitor. rewrite !assoc. refine (_ @ id_left _). apply maponpaths_2. rewrite !assoc'. etrans. { apply maponpaths. etrans. { apply maponpaths. rewrite !assoc. rewrite mon_lunitor_triangle. apply idpath. } rewrite !assoc. rewrite <- tensor_comp_id_r. rewrite mon_linvunitor_lunitor. rewrite tensor_id_id. apply id_left. } apply mon_linvunitor_lunitor. 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.