素数が無限個あることの証明

今回は、ちょっと(?)変わった方法で、素数が無限個あることを証明してみます。
(正の)素数の全体を \mathbb{P} と表すことにしておきます。
整数の全体 \mathbb{Z} に、次のようにして開集合系を定めます。
O\subset\mathbb{Z} が開集合であるとは、O空集合であるか、または、O空集合でない場合は、任意の a\in O に対して
N_{a,b}=\{a+bn|n\in\mathbb{Z}\}\subset O
を満たすような整数 b>0 が存在する。
これは確かに開集合系になります。開集合の任意個の和集合が開集合になることを確かめるのは容易ですので、O_1,O_2 が開集合であるとして、O_1\cap O_2 も開集合となることを示しましょう。
a\in O_1\cap O_2 とすると N_{a,b_1}\subset O_1,N_{a,b_2}\subset O_2 を満たす整数 b_1,b_2>0 が存在します。このとき N_{a,b_1b_2}\subset O_1\cap O_2 となるので、O_1\cap O_2 も開集合です。
定義から直ちに、空でない開集合は必ず無限集合になることが分かります。また、N_{a,b} 自身は開集合です。実際 a'\in N_{a,b} ならば a'=a+bk となる整数 k が存在するので、任意の整数 n に対して
a'+bn=a+b(n+k)\in N_{a,b}
だから N_{a',b}\subset N_{a,b} となるからです。一方で
N_{a,b}=\mathbb{Z}\setminus\bigcup_{i=1}^{b-1}N_{a+i,b}
だから、N_{a,b} は開集合の補集合、すなわち閉集合です。
さて \pm 1 以外の整数は必ずある素因数 p を持つので
\mathbb{Z}\setminus\{-1,1\}=\bigcup_{p\in\mathbb{P}}N_{0,p}
と表せます。ここで素数が有限個しかなければ、右辺は有限個の閉集合の和集合だから閉集合、すなわち \{-1,1\} が開集合、と言うことになりますが、これは矛盾です。
この方法を考案したのはフュルステンベルグ(Hillel Fürstenberg)だそうです。頭いい !