Definition disp_has_binprod (HB : has_binprod B) : UU := ∏ (x y : total_bicat D), let p_cone : binprod_cone (pr1 x) (pr1 y) := pr1 (HB (pr1 x) (pr1 y)) in let Hp_cone : has_binprod_ump p_cone := pr2 (HB (pr1 x) (pr1 y)) in ∑ (prod : D (binprod_cone_obj p_cone)), prod -->[ binprod_cone_pr1 p_cone ] pr2 x × prod -->[ binprod_cone_pr2 p_cone ] pr2 y × ∏ (z : total_bicat D) (f : z --> x) (g : z --> y), pr2 z -->[ binprod_ump_1cell Hp_cone (pr1 f) (pr1 g) ] prod.
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.DisplayedCats.Core. Require Import UniMath.Bicategories.Core.Bicat. Import Bicat.Notations. Require Import UniMath.Bicategories.Core.Invertible_2cells. Require Import UniMath.Bicategories.Core.Unitors. Require Import UniMath.Bicategories.Core.BicategoryLaws. Require Import UniMath.Bicategories.DisplayedBicats.DispBicat. Import DispBicat.Notations. Require Import UniMath.Bicategories.DisplayedBicats.DispInvertibles. Require Import UniMath.Bicategories.DisplayedBicats.Examples.EndoMap. Require Import UniMath.Bicategories.DisplayedBicats.Examples.MonadsLax. Require Import UniMath.Bicategories.Limits.Final. Require Import UniMath.Bicategories.Limits.Products. Require Import UniMath.Bicategories.Limits.Pullbacks. Require Import UniMath.Bicategories.Limits.EilenbergMooreObjects. Require Import UniMath.Bicategories.Monads.Examples.MonadsInTotalBicat. Require Import UniMath.Bicategories.PseudoFunctors.Display.PseudoFunctorBicat. Require Import UniMath.Bicategories.PseudoFunctors.PseudoFunctor. Import PseudoFunctor.Notations. Require Import UniMath.Bicategories.PseudoFunctors.Examples.MonadInclusion.