There are two mistakes here. First, D is the collection offinitenonempty subsets of , so . Second, pigeonhole principle is not valid for infinite sets. You may have an injection from a infinite set into its proper subset; in fact, this is one of the definitions of an infinite set. The proof of the pigeonhole principle proceeds by induction on the cardinality of the domain, so it only applies when this cardinality is a natural number. You need to use transfinite induction to prove properties of infinite numbers (ordinals). It is probably instructive to see where the proof of the principle breaks down when one tries to use transfinite induction instead of regular one.

Speaking about the problem, you need to have an intuition about D. Can you give examples of sets in D? Both questions are trivial once you understand what D is.