Notation pr1 := (@projT1 _ _).
Notation compose := (fun g' f' x => g' (f' x)).
Notation "g 'o' f" := (compose g f) (at level 40, left associativity) :
function_scope.
Open Scope function_scope.
Definition ap {A B:Type} (f:A -> B) {x y:A} (p:x = y) : f x = f y := match p
with eq_refl => eq_refl end.
Definition pointwise_paths {A} {P:A->Type} (f g:forall x:A, P x) := forall x:A,
f x = g x.
Notation "f == g" := (pointwise_paths f g) (at level 70, no associativity) :
type_scope.

Theorem Univalence_implies_FunextNondep (A B : Type)
: forall f g : A -> B, f == g -> f = g.