Program Instance elementsUnsized {A} {def : A} (l : list A) :
Unsized (elements def l).
Next Obligation.
rewrite ! semElementsSize. by case: l.
Qed.
(* A rather long frequency proof, probably we can do better *)

Lemma sum_fst_eq0P {A} (l : list (nat * A)) :
sum_fst l = 0 <-> [seq x <- l | x.1 != 0] = [::].