/ex_minnP=> n /pred0P; case: (pickP (pS n)) => // A /andP[PA] /eqP <-{n} _.
move=> minA; exists A => //; apply/minsetP; split=> // B PB sBA; apply/eqP.
by rewrite eqEcard sBA minA //; apply/pred0Pn; exists B; rewrite /= PB /=.
Qed.

(* Specifications: *)
move=> PC; have{PC}: exists A, P A && (A \subset C) by exists C;
Qed.
by split=> // B PB sAB; rewrite -[B]setCK [~: B]minA (