Definition Ensemble_join {A} (X Y Z: Ensemble A): Prop :=
  (forall a, Z a <-> X a \/ Y a) /\ (forall a, X a -> Y a -> False).

(* Specifications: *)
Lemma decidable_countable_ex_sig {A} (f : nat -> A) (Hf : forall a, exists n, a = f n) (P : A -> Prop) (Pdec : forall x, {P x} + {~ P x}) : (exists x : A, P x) -> {x : A | P x}.