Require Export Undecidability.Synthetic.Definitions Lia.
Definition discrete X := decidable (fun '(x,y) => x = y :> X).
(* Facts on reflects *)
(* Type-theoretic characterisations *)

Lemma dec_decidable' X p :
(forall x : X, dec (p x)) -> { f : _ | forall x, p x <-> f x = true}.