Definition pr1_internal_cleaving : internal_sfib_cleaving (π₁ : b₁ ⊗ b₂ --> b₁). Proof. intros a f g α. simple refine (⟨ f , g · π₂ ⟩ ,, ⟪ α , id2 _ ⟫ • prod_1cell_eta _ g ,, prod_1cell_pr1 _ f _ ,, _ ,, _) ; simpl. - apply invertible_to_cartesian. rewrite <- rwhisker_vcomp. use is_invertible_2cell_vcomp. + rewrite prod_2cell_pr2. is_iso. apply prod_1cell_pr2. + is_iso. apply prod_1cell_eta. - abstract (unfold prod_1cell_eta_map ; rewrite <- !rwhisker_vcomp ; etrans ; [ apply maponpaths ; apply binprod_ump_2cell_pr1 | ] ; rewrite prod_2cell_pr1 ; rewrite !vassocl ; rewrite vcomp_linv ; rewrite id2_right ; apply idpath). Defined.
Require Import UniMath.Foundations.All. Require Import UniMath.MoreFoundations.All. Require Import UniMath.CategoryTheory.Core.Categories. Require Import UniMath.Bicategories.Core.Bicat. Import Bicat.Notations. Require Import UniMath.Bicategories.Core.Invertible_2cells. Require Import UniMath.Bicategories.Morphisms.InternalStreetFibration. Require Import UniMath.Bicategories.Morphisms.InternalStreetOpFibration. Require Import UniMath.Bicategories.Limits.Products. Import Products.Notations.