intros.
assert (H0:in_part a(empty G)->False). auto.
assert (H1:A =' empty G -> False).
intro H1a. simpl in H1a. unfold eq_part in H1a.
elim (H1a a). intros H1b H1c. apply H0. apply H1b. exact H.
assert (H2:n=0->False).
intro H2a. apply H1. apply has_zero_elements_then_empty.
rewrite H2a in FINA. exact FINA. apply (neq_O_lt n). auto. Qed.

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).