`{Funext} {A : Type} {B : A -> Type} {C : sig B -> Type} {a1 a2 : A} {p : a1 = a2} {f : forall x, C (a1; x)} {g : forall x, C (a2; x)} : (forall (x : B a1) (y : B a2) (q : DPath B p x y), DPath C (path_sigma_dp (p; q)) (f x) (g y)) <~> DPath (fun a => forall x, C (a; x)) p f g. Proof. symmetry. destruct p; cbn. refine (equiv_compose' _ (equiv_apD10 _ _ _)). apply equiv_functor_forall_id. intro a. srapply equiv_adjointify. + by intros ? ? []. + intro F; exact (F a 1). + repeat (intro; apply path_forall). by intros []. + by intro. Defined.
Require Import Basics. Require Import Types.Paths Types.Sigma Types.Forall.