Section ee_eq_proof.
Variable F G : Ens.
Hypothesis f : is_a_function F.
Hypothesis g : is_a_function G.
Hypothesis d : EQ (Domain F) (Domain G).
Hypothesis e : Extensionally_equivalent F G.
Let step1 : SUB (Domain F) (Domain G).
Proof EQ_forwards (Domain F) (Domain G) d.
Let step2 : SUB (Domain G) (Domain F).
Proof EQ_backwards (Domain F) (Domain G) d.
Let step3 : Extensionally_equivalent G F.
Proof ex_eq_symm F G e.
Let step4 : SUB F G.
Proof ex_eq_sub F G f step1 e.
Let step5 : SUB G F.
Proof ex_eq_sub G F g step2 step3.
Proof Build_EQ F G step4 step5.
End ee_eq_proof.

Theorem Extensionality_for_functions :
forall (F G : Ens) (f : is_a_function F) (g : is_a_function G)
(d : EQ (Domain F) (Domain G)) (e : Extensionally_equivalent F G),
EQ F G.