Definition sumF {X} `{Finite X} (f : X -> nat) : nat :=
list_sum (map f enum).
Definition sumFQ {X} `{Finite X} (f : X -> Q) : Q :=
Qsum(map f enum).

Lemma sumF_sumFQ {X} `{Finite X} (E : X -> bool) :
sumFQ (fun x => indicate (E x)) == Q_of_nat (sumF (fun x => indicate_nat (E x))).