proposition: Theorem RndNat_prob : forall n i (nzn : nz n), i < n -> evalDist (RndNat n) i == 1 / n.
proof: Proof. intuition. eapply (@ratMult_same_r_inv _ (n / 1)). rewrite ratMult_eq_rat1. eapply eqRat_trans. 2:{ eapply evalDist_lossless. eapply well_formed_RndNat. destruct nzn. apply agz. } symmetry. eapply eqRat_trans. eapply sumList_body_eq; intuition. eapply (@RndNat_uniform _ i). eapply RndNat_support_lt; intuition. trivial. rewrite sumList_body_const. rewrite RndNat_support_length. intuition. intuition. eapply rat_num_nz. destruct nzn. eapply agz. eauto. Qed.
imports: FCF.Crypto Permutation FCF.NotationV1