(* Proof of lem_f_in_prod_is_fun                                           *)
unfold produit in |- *; intros.
elim
(axs_comprehension
(fun f0 : E =>
forall i : E,
In i I ->
exUniq E (fun y : E => In (couple i y) f0 /\ In y (App a funa i)))
(exp (reunion (index a I funa doma)) I) f); intros;
generalize (H0 H); clear H H0 H1; intros.
elim H; clear H; intros.
exact (lem_exp_elem_is_fun (reunion (index a I funa doma)) I f H).
Qed.
(* End of proof of lem_f_in_prod_is_fun                                    *)

Lemma lem_dom_of_f_in_prod_is_I :
forall (a I : E) (funa : fun_ a) (doma : dom a = I) (f : E),
In f (produit a I funa doma) -> dom f = I.