{A B : Type} {DA : A -> Type} `{DHasEquivs A DA} {DB : B -> Type} `{DHasEquivs B DB} (F : A -> B) `{!Is0Functor F, !Is1Functor F} (F' : forall (a : A), DA a -> DB (F a)) `{!IsD0Functor F F', isd1f : !IsD1Functor F F'} {a b c : A} {f : a $<~> b} {g : b $<~> c} {a' : DA a} {b' : DA b} {c' : DA c} (f' : DCatEquiv f a' b') (g' : DCatEquiv g b' c') : DGpdHom (emap_compose F f g) (dcate_fun (demap F F' (g' $oE' f'))) (dfmap F F' (dcate_fun g') $o' dfmap F F' (dcate_fun f')). Proof. refine (dcate_buildequiv_fun _ $@' _). refine (dfmap2 F F' (dcompose_cate_fun _ _) $@' _). nrapply dfmap_comp; exact isd1f. Defined.
Require Import Basics.Overture. Require Import Basics.Tactics. Require Import Basics.Equivalences. Require Import Types.Sigma. Require Import WildCat.Core. Require Import WildCat.Displayed. Require Import WildCat.Equiv.