Lemma right_over_adj_preserves_cartesianness : is_cartesian_disp_functor GG. 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.
Require Import UniMath.Foundations.Sets. Require Import UniMath.MoreFoundations.PartA. Require Import UniMath.CategoryTheory.Core.Categories. Require Import UniMath.CategoryTheory.Core.Functors. Require Import UniMath.CategoryTheory.Core.NaturalTransformations. Require Import UniMath.CategoryTheory.Adjunctions.Core. Require Import UniMath.CategoryTheory.Equivalences.Core. Require Import UniMath.CategoryTheory.DisplayedCats.Core. Require Import UniMath.CategoryTheory.DisplayedCats.Functors. Require Import UniMath.CategoryTheory.DisplayedCats.NaturalTransformations. Require Import UniMath.CategoryTheory.DisplayedCats.Constructions. Require Import UniMath.CategoryTheory.DisplayedCats.Fibrations. Require Import UniMath.CategoryTheory.DisplayedCats.Equivalences.