Global Instance Finite_unit : Finite unit.Global Instance Finite_bool_vec {n} : Finite (vec n bool).Definition transform_pair {X Y Z} (tp : X * Y * Z) : X * (Y * Z) :=
  (fst (fst tp), (snd (fst tp), snd tp)).

Lemma uniform_same_prob {X} `{EqDec X} (d : dist X) (q : Q) : (forall x, eval_dist d (Classes.eqb x) == q) -> uniform d.