{A : pType} {B C : pFam A} {g g' : forall (a : A), B a -> C a} {g₀ : g (point A) (dpoint B) = dpoint C} {g₀' : g' (point A) (dpoint B) = dpoint C} {f f' : pForall A B} (p : forall a, g a == g' a) (q : f ==* f') (r : p (point A) (dpoint B) @ g₀' = g₀) : functor_pforall_right g g₀ f ==* functor_pforall_right g' g₀' f'. Proof. srapply Build_pHomotopy. 1: { intro a. refine (p a (f a) @ ap (g' a) (q a)). } pointed_reduce_rewrite. symmetry. apply concat_Ap. Defined.
Require Import Basics Types. Require Import Pointed.Core.