proposition: Lemma right_over_adj_preserves_cartesianness : is_cartesian_disp_functor GG.
proof: Proof. unfold is_cartesian_disp_functor. intros c c' f d d' ff ff_cart. intros c'' g d'' h. set (eq := φ_adj_inv_natural_postcomp A _ _ g _ f : # F (g · # G f) · ε c = # F g · (ε c') · f). Open Scope mor_disp. apply (@iscontrweqb _ (∑ gg, (gg;; ff) = transportf _ eq (homset_conj_inv _ _ _ h))). - apply (weqbandf (dispadjunction_hom_weq _ _ g _ _)). intro gg. cbn. set (eq2 := homset_conj_inv_natural_postcomp gg ff). cbn in eq2. apply weqimplimpl. + intro p. rewrite <- p. rewrite eq2. rewrite transport_f_b. intermediate_path (transportf _ (idpath _ ) (♯ FF gg;; εε c' d';; ff)). * apply idpath. * apply maponpaths_2, homset_property. + intro p. set (equiv1 := homset_conj'_after_conj_inv _ h). set (equiv2 := homset_conj'_after_conj_inv _ (gg;; ♯ GG ff)). unfold homset_conj' in equiv1, equiv2. rewrite <- equiv1. rewrite <- equiv2. rewrite eq2. rewrite p. rewrite transport_b_f. rewrite disp_functor_transportf. rewrite mor_disp_transportf_prewhisker. rewrite transport_f_f. apply maponpaths_2, homset_property. + apply homsets_disp. + apply homsets_disp. - apply ff_cart. Defined.
imports: UniMath.Foundations.Sets UniMath.MoreFoundations.PartA UniMath.CategoryTheory.Core.Categories UniMath.CategoryTheory.Core.Functors UniMath.CategoryTheory.Core.NaturalTransformations UniMath.CategoryTheory.Adjunctions.Core UniMath.CategoryTheory.Equivalences.Core UniMath.CategoryTheory.DisplayedCats.Core UniMath.CategoryTheory.DisplayedCats.Functors UniMath.CategoryTheory.DisplayedCats.NaturalTransformations UniMath.CategoryTheory.DisplayedCats.Constructions UniMath.CategoryTheory.DisplayedCats.Fibrations UniMath.CategoryTheory.DisplayedCats.Equivalences