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.

(* Specifications: *)
Theorem RndNat_seq :
forall (n : posnat)(A : Set)(c : nat -> Comp A) a,
evalDist (x <-$ RndNat n; c x) a ==
(1 / n) * sumList (allNatsLt n) (fun z => evalDist (c z) a).