unfold Union in |- *.
intros.
simpl in |- *.
elim (CIN_EXType (sup A f) E' X).
intro.
simpl in x.
intros.
simpl in p.
elim (CIN_EXType E' E0 X0).
cut (CIN E0 (f x)).
intros.
elim (CIN_EXType _ _ X1).
simpl in |- *.
intros.
exists (dep_i A (fun x : A => pi1 (f x)) x x1); auto with zfc.
apply CIN_sound_right with E'; auto with zfc.
Qed.
(* idem depprod *)
Inductive depprod' (A : Type) (P : A -> Type) : Type :=
dep_i' : forall x : A, P x -> depprod' A P.

(* Specifications: *)
Theorem Union_CIN :
forall E E' : Ens,
CIN E' (Union E) ->
depprod' _ (fun E1 : Ens => prod_t (CIN E1 E) (CIN E' E1)).
Theorem Union_CIN :
forall E E' : Ens,
CIN E' (Union E) ->
depprod' _ (fun E1 : Ens => prod_t (CIN E1 E) (CIN E' E1)).