85
$\begingroup$

Show that the set of all finite subsets of $\mathbb{N}$ is countable.

I'm not sure how to do this problem. I keep trying to think of an explicit formula for 1-1 correspondence like adding all the elements in each subset and sending that sum to itself in the natural numbers, but that wouldn't be 1-1 because, for example, the set {1,2,3} would send to 6 and so would the set {2,4}. Multiplying all the elements in each subset and sending that product to itself in the natural numbers wouldn't work either since, for example, {2,3} would send to 5 and so would the set {1,5}. Any ideas?

$\endgroup$
3
  • 9
    $\begingroup$ $2\times3\not=5$ :) $\endgroup$ Sep 21 '12 at 17:53
  • 3
    $\begingroup$ Set of Finite Subsets of Countable Set is Countable at ProofWiki. See also this question for a generalization of your question ($\mathbb N$ is replaced by arbitrary infinite set $X$ and it is shown that set of all finite subset of $X$ has the same cardinality as $X$). $\endgroup$ Sep 22 '12 at 6:50
  • $\begingroup$ You're right, an explicit bijection would be a neat proof. Hint: think like a computer scientist. $\endgroup$ Jul 17 '15 at 10:05
91
$\begingroup$

Define three new digits: $$\begin{align} \{ &= 10 \\ \} &= 11\\ , &= 12 \end{align}$$ Any finite subset of $\mathbb{N}$ can be written in terms of $0,1,\cdots,9$ and these three characters, and so any expression of a subset of $\mathbb{N}$ is just an integer written base-$13$. For instance, $$\{1,2\} = 10 \cdot 13^4 + 1 \cdot 13^3 + 12 \cdot 13^2 + 2 \cdot 13^1 + 11 \cdot 13^0 = 289873$$

So for each finite $S \subseteq \mathbb{N}$, take the least $n_S \in \mathbb{N}$ whose base-$13$ expansion gives an expression for $S$. This defines an injection into $\mathbb{N}$.


More generally, any set whose elements can be written as finite strings from some finite (or, in fact, countable) alphabet, is countable.

$\endgroup$
15
  • 16
    $\begingroup$ +1 Really nice answer. $\endgroup$ Sep 2 '13 at 18:07
  • $\begingroup$ The user @TimothySwan tried to edit your question to add a comment, I have copied his comment here since the user can't comment himself. He commented: However, this proof is not correct since there must be an injection from $\mathbb N$. $\endgroup$
    – Alice Ryhl
    Sep 22 '14 at 14:34
  • 2
    $\begingroup$ Thanks @Darksonn. (For the benefit of anyone else reading, that's not true; every infinite set has an injection from $\mathbb{N}$ into it!) $\endgroup$ Sep 22 '14 at 20:32
  • $\begingroup$ (+1 a while ago) Not that it will be relevant to most users, but depending on the axioms one is working with, it may be possible for an infinite set to have no injection from $\Bbb N.$ $\endgroup$ May 10 '15 at 9:22
  • 1
    $\begingroup$ @TTL: You're missing 'and these three new characters', namely open curly bracket, close curly bracket, and comma. $\endgroup$ Nov 15 '19 at 22:23
80
$\begingroup$

Consider an enumeration of the (positive) prime numbers by $n\mapsto p_n$. Then if you're given the set $\{n_1,...,n_k\}$, map that to $$p_{n_1}\cdots p_{n_k}.$$ For example, if we've enumerated the primes increasingly ($p_1=2$, $p_2=3$, and so on), then $$\{1,3,4\}\mapsto 70=2\cdot 5\cdot 7=p_1\cdot p_3\cdot p_4,$$ and $$\{1,3\}\mapsto 10=2\cdot 5=p_1\cdot p_3.$$

You'll need the fact that there are countably infinitely many prime numbers, and uniqueness of prime factorization. From there, it shouldn't be hard to prove this is an injection from the set of finite subsets of $\Bbb N$ into $\Bbb N$, so there are at most countably many such subsets. To show that there are at least (and so exactly) countably many finite subsets of $\Bbb N$, you need only find an injection from $\Bbb N$ into the set of finite subsets of $\Bbb N$, which should be easy.

Added: The described map "should" send $\emptyset$ to $1,$ the "empty product." Even if this doesn't make sense to you, though, you can define the function for non-empty finite subsets, and from there, use the easy-to-prove fact that the union of a countably infinite set and a singleton--in this case, $\{\emptyset\}$--is countably infinite.

$\endgroup$
10
  • $\begingroup$ So if I was given a set {1,3} and a set {1,3,4}, you're saying to map that to 1,3 and 1,2^2,3? Am I understanding correctly? $\endgroup$
    – user39794
    Sep 21 '12 at 17:28
  • $\begingroup$ Not quite. I'll include an example to clarify. $\endgroup$ Sep 21 '12 at 17:31
  • $\begingroup$ It's ok I think I get it now from reading the other answer! :) Thanks though! $\endgroup$
    – user39794
    Sep 21 '12 at 17:32
  • 1
    $\begingroup$ @Diego: Yes. However, the given map is not a bijection with $\Bbb N.$ For example, there is no finite subset of $\Bbb N$ that is mapped to $4.$ Rather, the map is an injection into $\Bbb N.$ $\endgroup$ Feb 12 '16 at 12:34
  • 1
    $\begingroup$ @Diego: Your reasoning is a bit faulty. After all, $\{1\}$ is a subset of $\Bbb N,$ too, and we certainly can't conclude that there exists a bijection between $\{1\}$ and $\Bbb N$! In order to conclude that a subset of $\Bbb N$ is in bijection with $\Bbb N,$ we have to know that it is an infinite subset. The last part is aimed at proving that the range of the map is, indeed, infinite. $\endgroup$ Feb 12 '16 at 19:33
55
$\begingroup$

Alternatively, just use base $2$, so send $\{a_1,...,a_n\}$ to $2^{a_1}+\cdots+2^{a_n}$. (Assuming your $\mathbb N$ includes $0$, this is $1-1$ and onto.)

$\endgroup$
7
  • 5
    $\begingroup$ +1 Put in other way: any finite subset of positive integers can be represented as a binary string (with a finite number of ones), which in turn can be interpreted as a binary number which correspond to a positive integer. $\endgroup$
    – leonbloy
    Mar 17 '14 at 20:09
  • 2
    $\begingroup$ In my opinion, this is the best possible proof because the bijection is very, very explicit. $\endgroup$ Jul 17 '15 at 8:31
  • $\begingroup$ Any base worked, right?(the base being an integer) $\endgroup$
    – Diego
    Feb 12 '16 at 4:42
  • 4
    $\begingroup$ Any base gives you a $1-1$ function. Base $2$ is onto. @Diego $\endgroup$ Feb 12 '16 at 11:52
  • $\begingroup$ @MartinBrandenburg: Since the set {a1,...an} isn't an ordered one, we have several base 2 numbers mapping to the same set. How's a bijection best constructed here, then? The accepted answer is also just an injection, no? $\endgroup$
    – Nikolaj-K
    Mar 8 '17 at 14:57
39
$\begingroup$

The other answers give some sort of formula, like you were trying to do. But, the simplest way to see that the set of all finite subsets of $\mathbb{N}$ is countable is probably the following.

If you can list out the elements of a set, with one coming first, then the next, and so on, then that shows the set is countable. There is an easy pattern to see here. Just start out with the least elements.

$$\emptyset, \{1\}, \{2\}, \{1, 2\}, \{3\}, \{1, 3\}, \{2, 3\}, \{1, 2, 3\}, \{4\}, \ldots$$

In other words, first comes $\{1\}$, then comes $\{2\}$. Each time you introduce a new integer, $n$, list all the subsets of $[n] = \{1, 2, \ldots, n\}$ that contain $n$ (the ones that don't contain $n$ have already showed up). Therefore, all subsets of $[n]$ show up in the first $2^{n}$ elements of this sequence.

$\endgroup$
6
  • 3
    $\begingroup$ In other words: List the elements of $P(\emptyset)$. List the elements of $P(\{1\}) \setminus P(\emptyset)$. List the elements of $P(\{1,2\}) \setminus P(\{1\})$. List the elements of $P(\{1,2,3\}) \setminus P(\{1,2\})$. And so on. $\endgroup$ Jul 17 '15 at 8:29
  • $\begingroup$ The lazy approach is a 'surjective' listing, $PL([0,1]),PL([0,2]),PL([0,3]),\dots,PL([0,n]),\dots$ where $PL$ is powerset listing (with commas) and $[0,n]$ is the initial segment. $\endgroup$ Aug 18 '17 at 19:26
  • $\begingroup$ how do you actually show this is surjective and injective? $\endgroup$ Sep 5 '18 at 16:18
  • $\begingroup$ For a proof specification see this answer: Neatest proof that set of finite subsets is countable?. $\endgroup$ Jun 2 '20 at 14:21
  • $\begingroup$ Why does this not work for infinite subsets? By your argument the same listing should work. $\endgroup$ Feb 25 '21 at 3:38
26
$\begingroup$

I'm surprised nobody else has said this, so I worry that I've missed the point of the question. But I would argue as follows: Let $N_i$ be the family of all subsets of $\Bbb N$ with exactly $i$ elements. $N_0$ is finite, and $N_1$ is countable. $N_2$ is countable also, since it's a subset of $\Bbb N\times \Bbb N$. There's an easy induction argument that $N_i$ is countable for all $i>0$, since it's contained in the product $\Bbb N\times N_{i-1}$ of two countable sets.

Then, since the set you want, $\bigcup N_i$, is a countable union of countable sets, it is countable.

$\endgroup$
5
  • 3
    $\begingroup$ Well, a countable union of countable sets needn't be countable. It depends on your axioms. $\endgroup$ Sep 29 '12 at 22:09
  • 3
    $\begingroup$ What axioms would those be? $\endgroup$
    – MJD
    Sep 29 '12 at 22:28
  • 2
    $\begingroup$ Set theoretic axioms--which you need at least some of before you can talk about sets, countability, unions, etc. For example, there are models of ZF in which $\Bbb R$ is a countable union of countable sets. If one takes countable choice (or stronger) as an axiom, then countable unions of countable sets are countable (that's a strictly weaker statement than countable choice). Now, it's worth noting that countable unions of enumerated sets (countable sets with a given bijection with $\Bbb N$) are countable, with no need for choice principles. $\endgroup$ Sep 29 '12 at 23:07
  • $\begingroup$ @CameronBuie This difficulty can be resolved pretty easily. Instead of proving by induction that there exists a bijection $\mathbb{N} \to \mathbb{N}^n$, we instead recursively construct for each $n$ a specific bijection $f_n : \mathbb{N} \to \mathbb{N}^n$. This requires exactly the same logic as inductive proof. Then, you can show that given a family $\{U_i\}_{i \in \mathbb{N}}$ of sets and a family $\{f_i : \mathbb{N} \to U_i\}_{i \in \mathbb{N}}$ of bijections, one can construct a bijection $\mathbb{N} \to \bigcup\limits_{i \in \mathbb{N}} U_i$. $\endgroup$ Oct 6 '21 at 22:25
  • $\begingroup$ @Mark: That absolutely works in this case, yes. As I mentioned in my comment above, countable unions of enumerated countable sets are countable. I was just pointing out that countable unions of countable sets need not be countable in general. :-) $\endgroup$ Oct 6 '21 at 22:41
15
$\begingroup$

Let $p_1,p_2,\ldots$ the sequence of primes. Then map each finite subset $\{a_1,\ldots,a_n\} \subset \mathbb N$ to $p_1^{a_1}\cdots p_n^{a_n}$ where $a_1 < \ldots < a_n$. This gives an injective map from the set of finite subsets of $\mathbb N$ to $\mathbb N$.

Alternatively, notice that for every $s$ there are only finitely many finite subsets of $\mathbb N$ whose sum is $\leq s$. Let $A_s$ be the set of those subsets, then $\mathbb N = \bigcup_{s} A_s$ is a countable union of finite sets, hence countable.

$\endgroup$
2
  • $\begingroup$ You beat me to the post ... slightly different, but the same important idea - You can show that the set $C_N$ of subsets of $\mathbb N$ whose members sum to $N$ is finite for each $N\in\mathbb N$. Then each finite subset of $\mathbb N$ has a finite sum $N$ and hence is in one of the $C_N$, and the union of the $C_N$ is a countable union of finite sets, hence is countable. $\endgroup$ Sep 21 '12 at 18:41
  • $\begingroup$ @Mark: Not that it's probably relevant to the OP, but a countable union of finite sets needn't be countable in general without sufficient Choice. Here, of course, we're dealing with well-ordered finite sets, so it works out. $\endgroup$ Jul 31 '14 at 10:48
9
$\begingroup$

If $S$ is the set of all finite subsets of $\mathbb{N}$, define $f:S\rightarrow \mathbb{Q}$ by

$f(A)=.x_1x_2x_3x_4\cdots$ where $x_{i}=\begin{cases}1 &\mbox{, if }i\in A\\0 &\mbox{, if } i\not\in A \end{cases}$.

Then $f$ is clearly injective, so $S$ is countable since $\mathbb{Q}$ is countable and any subset of a countable set is countable.

$\endgroup$