Lemma Y_contr_eq (b b' : D) (f : b --> b') (a0 : C) (h0 : unitary _ (H a0) b) (a0' : C) (h0' : unitary _ (H a0') b') : ∏ t : Y f, t = Y_inhab b b' f a0 h0 a0' h0'. Proof. intro t. apply pathsinv0. assert (Hpr : pr1 (Y_inhab b b' f a0 h0 a0' h0') = pr1 t). { destruct t as [g1 r1]; simpl in *. rewrite <- assoc. use unitary_inv_on_right. { apply k. } set (hfh := h0 · f · unitary_inv h0'). set (l0 := fH^-1 hfh). apply (r1 a0 h0 a0' h0' l0). unfold l0. inv_functor fH a0 a0' . unfold hfh. repeat rewrite <- assoc. apply maponpaths. refine (_ @ id_right _). apply maponpaths. apply h0'. } apply (total2_paths_f Hpr). apply proofirrelevance. repeat (apply impred; intro). apply homset_property. 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.NaturalTransformations. Require Import UniMath.CategoryTheory.whiskering. Require Import UniMath.CategoryTheory.DisplayedCats.Core. Require Import UniMath.CategoryTheory.DisplayedCats.Functors. Require Import UniMath.CategoryTheory.DisplayedCats.Total. Require Import UniMath.CategoryTheory.DisplayedCats.TotalCategoryFacts. Require Import UniMath.CategoryTheory.precomp_fully_faithful. Require Import UniMath.CategoryTheory.DaggerCategories.Categories. Require Import UniMath.CategoryTheory.DaggerCategories.Functors. Require Import UniMath.CategoryTheory.DaggerCategories.Transformations. Require Import UniMath.CategoryTheory.DaggerCategories.Unitary. Require Import UniMath.CategoryTheory.DaggerCategories.Univalence. Require Import UniMath.CategoryTheory.DaggerCategories.FunctorCategory. Require Import UniMath.CategoryTheory.DaggerCategories.Functors.FullyFaithful. Require Import UniMath.CategoryTheory.DaggerCategories.Functors.WeakEquivalences.