(* ** Facts *)

(* Specifications: *)
Lemma dec_compl X p :
decidable p -> decidable (fun x : X => ~ p x).
Lemma dec_conj X p q :
decidable p -> decidable q -> decidable (fun x : X => p x /\ q x).
Lemma dec_disj X p q :
decidable p -> decidable q -> decidable (fun x : X => p x \/ q x).
Theorem dec_count_enum X (p : X -> Prop) :
decidable p -> enumerable__T X -> enumerable p.
Theorem dec_count_enum' X (p : X -> Prop) :
decidable p -> enumerable__T X -> enumerable (fun x => ~ p x).