Lemma functor_to_bifunctor_to_functor {C D E : category} (F : functor (C × D) E) : bifunctor_to_functorfromproductcat (bifunctor_from_functorfromproductcat F) = F. Proof. apply (functor_eq _ _ (homset_property _)). use total2_paths_f. - apply idpath. - etrans. { rewrite idpath_transportf. apply idpath. } repeat (apply funextsec ; intro). etrans. { apply (! functor_comp _ _ _). } apply maponpaths. etrans. { apply binprod_comp. } cbn. etrans. { apply maponpaths ; apply id_left. } etrans. { apply maponpaths_2 ; apply id_right. } apply idpath. Qed.
Require Import UniMath.Foundations.All. Require Import UniMath.MoreFoundations.All. Require Import UniMath.CategoryTheory.Core.Categories. Require Import UniMath.CategoryTheory.Core.Functors. Require Import UniMath.CategoryTheory.Core.Isos. Require Import  UniMath.CategoryTheory.PrecategoryBinProduct. Require Import UniMath.CategoryTheory.FunctorCategory. Require Import UniMath.CategoryTheory.Core.NaturalTransformations. Require Import UniMath.CategoryTheory.Limits.BinCoproducts. Require Import UniMath.CategoryTheory.Limits.Coproducts. Require Import UniMath.CategoryTheory.ProductCategory. Import BifunctorNotations. Import BifunctorNotations. Section FunctorsFromProductCategory. Import BifunctorNotations. End FunctorsFromProductCategory. Import BifunctorNotations. Import BifunctorNotations. Import BifunctorNotations.