Lemma full_spec {C : bicat} {X Y Z : C} {f : C⟦X,Y⟧} {g : C⟦Y,X⟧} (η : id₁ X ==> g ∘ f) (θ : f ∘ g ==> id₁ Y) (Hη : is_invertible_2cell η) (Hθ : is_invertible_2cell θ) (k₁ k₂ : C⟦Z,X⟧) (α : f ∘ k₁ ==> f ∘ k₂) : f ◅ (representable_full η θ Hη k₁ k₂ α) = α. Proof. refine (representable_faithful (Hθ^-1) (f ∘ k₁) (f ∘ k₂) _ α _ _). { is_iso. } apply (vcomp_lcancel (lassociator _ _ _)). { is_iso. } rewrite <- whisker_l_hcomp. apply (vcomp_rcancel (rassociator _ _ _)). { is_iso. } rewrite <- !vassocr. rewrite lassociator_rassociator, id2_right. apply (vcomp_rcancel (Hη^-1 ▻ k₂)). { is_iso. } apply (vcomp_rcancel (runitor k₂)). { is_iso. } apply (vcomp_lcancel (η ▻ k₁)). { is_iso. } apply (vcomp_lcancel (rinvunitor k₁)). { is_iso. } rewrite <- !vassocr. rewrite <- (whisker_l_iso_id₁ η k₁ k₂ (representable_full η θ Hη k₁ k₂ α) Hη). apply idpath. Qed.
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.Unitors. Require Import UniMath.Bicategories.Core.Invertible_2cells. Require Import UniMath.Bicategories.Core.BicategoryLaws. Require Import UniMath.Bicategories.Morphisms.Adjunctions. Require Import UniMath.Bicategories.Core.Univalence.