Definition f_equal__functional_extensionality_dep_good
           {A B f g} H a
  : f_equal (fun h => h a) (@functional_extensionality_dep_good A B f g H) = H a.Definition f_equal__functional_extensionality_dep_good__fun
           {A B f g} H
  : (fun a => f_equal (fun h => h a) (@functional_extensionality_dep_good A B f g H)) = H.(* Expressing that [equal_f_dep] and [functional_extensionality_dep_good] form an equivalence *)

Definition equal_f_dep__functional_extensionality_dep_good
           {A B} {f g : forall x : A, B x} (H : forall x, f x = g x)
  : equal_f_dep (functional_extensionality_dep_good f g H) = H.Definition equal_f__functional_extensionality_dep_good
           {A B} {f g : A -> B} (H : forall x, f x = g x)
  : equal_f (functional_extensionality_dep_good f g H) = H.

(* Specifications: *)
Lemma functional_extensionality_dep_good__equal_f_dep {A B} {f g : forall x : A, B x} (H : f = g) : functional_extensionality_dep_good _ _ (equal_f_dep H) = H.
Lemma functional_extensionality_dep_good__equal_f {A B} {f g : A -> B} (H : f = g) : functional_extensionality_dep_good _ _ (equal_f H) = H.