Lemma lift_functor_along_comm_prod' (H : functor (category_binproduct C C) C) : nat_z_iso (lift_functor_along D FFF' FFF'_eso FFF'_ff ((pair_functor (functor_identity C) H ∙ H) ∙ F1)) (pair_functor (functor_identity D) (lift_functor_along D FF FF_eso FF_ff (functor_composite H F1) ) ∙ (lift_functor_along D FF FF_eso FF_ff (functor_composite H F1)) ) . Proof. use nat_z_iso_comp. 2: { exact (lift_functor_along_comp DD D F1 FFF'_eso FFF'_ff FF_eso FF_ff (pair_functor (functor_identity C) H) H). } apply post_whisker_nat_z_iso. use nat_z_iso_comp. 2 : { apply lift_functor_along_pair. } use nat_z_iso_between_pair. - apply lift_functor_along_id. - use make_nat_z_iso. 2: apply is_nat_z_iso_nat_trans_id. Defined.
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.NaturalTransformations. Require Import UniMath.CategoryTheory.Core.Isos. Require Import UniMath.CategoryTheory.Core.Univalence. Require Import UniMath.CategoryTheory.Adjunctions.Core. Require Import UniMath.CategoryTheory.Equivalences.Core. Require Import UniMath.CategoryTheory.Equivalences.FullyFaithful. Require Import UniMath.CategoryTheory.FunctorCategory. Require Import UniMath.CategoryTheory.whiskering. Require Import UniMath.CategoryTheory.precomp_ess_surj. Require Import UniMath.CategoryTheory.precomp_fully_faithful. Require Import UniMath.CategoryTheory.PrecategoryBinProduct.