Fixpoint nsum (n:Nat) {struct n} : seq n Nat -> Nat :=
match n return (seq n Nat -> Nat) with
|O => fun x:seq 0 Nat => 0
|S m => fun x:seq (S m) Nat => (head x) + (nsum m (Seqtl x)) end.

Lemma shrink_one:forall(E:Setoid)(B:part_set E) (k:Nat)(H:has_n_elements k B)(x:E)(Hx:in_part x B), has_n_elements (k-1) (minus_part B x).