proposition: Proposition cartesian_tensor_pr2 {x₁ x₂ y₁ y₂ : M} (f : x₁ --> x₂) (g : y₁ --> y₂) : f #⊗ g · semi_cart_tensor_pr2 M_cart x₂ y₂ = semi_cart_tensor_pr2 M_cart x₁ y₁ · g.
proof: Proof. unfold semi_cart_tensor_pr2. rewrite !assoc'. rewrite <- tensor_lunitor. rewrite !assoc. apply maponpaths_2. rewrite <- !tensor_comp_mor. rewrite !id_left, !id_right. apply maponpaths_2. apply (semi_cart_to_unit_eq M_cart). Qed.
imports: UniMath.Foundations.All UniMath.MoreFoundations.All UniMath.CategoryTheory.Core.Categories UniMath.CategoryTheory.Core.Isos UniMath.CategoryTheory.Core.Functors UniMath.CategoryTheory.Core.NaturalTransformations UniMath.CategoryTheory.Adjunctions.Core UniMath.CategoryTheory.Monoidal.WhiskeredBifunctors UniMath.CategoryTheory.Monoidal.Categories UniMath.CategoryTheory.Monoidal.Structure.Symmetric UniMath.CategoryTheory.Limits.Terminal UniMath.CategoryTheory.Limits.BinProducts UniMath.CategoryTheory.Limits.Initial UniMath.CategoryTheory.Limits.BinCoproducts