Bolzano-Weierstrassの定理(「有界な実数列からは収束する部分列がつくれる」)の証明

経済学のための数学入門』、定理2.2.3(72頁)。

有界な実数列からは、収束する部分列がつくれる。



実数列が有界であるとかないとかについてはまずこちら
部分列についてはこちら
実数列の収束についてはこちら
ある実数列が有界だということは、上にも下にも有界だということで、その実数列のどの要素よりも大きい(小さくない)実数が(数直線でいうと右の方に)あり、またどの要素よりも小さい(大きくない)実数が(数直線でいうと左の方に)ある、ということです。
元の実数列が収束するものであれば、それをそのまま「はい、部分列です」と差し出せば、収束する部分列をつくったよ、といえるわけですが、有界であるからといって収束するとは限らないので、元の実数列が収束しない場合についても考えないといけません。この定理は、そういう場合でも、その実数列からうまいことピックアップして部分列をつくれば、必ず収束するものができる、ということを言っています。
もちろん、「うまいこと」取り出さないと収束するとは限らないですが、これはつまり、「うまいこと」取り出す一般的な方法を一つ見つければ、それで定理は証明されるということです。
テキストに書いてある証明は(主に書き方が)、直観的な理解がすぐにはできない程度にテクニカルな感じがするので、以下では基本的に同じことを、できるだけわかりやすく書いてみます。

うまいこと収束するように取り出す方法ですが、イメージとしては、世界→東洋→日本→県→市→町→我が家、みたいな感じで、次々に部分集合をつくっていって、世界チャンピオン、東洋チャンピオン、日本チャンピオン、県内チャンピオン、市内チャンピオン、町内チャンピオン、我が家のチャンピオン、みたいに、各部分集合の中のチャンピオンを並べるという感じです。こうすれば強い順に並びますから、この場合だと強さの単調減少です。「有界で単調なら収束する」わけですから、これで収束する部分列は完成、と、まあこういう寸法です。

まずは元の実数列を用意します。

これは実数列の一般的な書き方ですから、ここから収束する部分列が取り出せれば、どんな実数列についても定理の内容が成り立つことになります。定理の仮定として、この実数列は(上にも下にも)有界だ、ということにしましょう。



この実数列の要素の集合を、

と書きます。次に、これを出発点として部分集合を次々につくります。つくり方は簡単で、添字が一番小さい要素(つまり実数列だと左端に位置する要素)を抜いていくだけです。つまり、

という感じですね。一般に、集合 から より前の要素を全部落としたもの、というふうになっています。なので当然、

というふうに、元の集合の部分集合の部分集合の部分集合の・・・となります。
それから、元の集合が有界ですから、当然その部分集合(の部分集合(の部分集合(・・・)))も有界です。



あとは、各集合ごとにチャンピオンを見つけてやれば、その並びが、有界で単調な実数列、つまり収束する実数列になるはずです。チャンピオンですから、各集合ごとの要素の最大値を取り出していけばおkじゃないかな、と思います・・・が、ここからは慎重に行かないと間違います。
並べた集合すべてに共通していえることは、今のところ、どれも「(上にも下にも)有界だ」ということだけです。ここから一歩一歩進みましょう。
まず、「上に有界なら最小上界が存在する」し、「下に有界なら最大下界が存在する」ので、どの集合についても、「最小上界と最大下界が存在する」、ということは言えますね。
ところが、最小上界は、その集合の要素であるときもあれば要素でないときもあります。重要なこととして、最小上界が要素であればそれが最大値(最大元)ですが、最小上界が要素でなければ最大値(最大元)は存在しません。逆に、集合に最大元があればそれが最小上界ですし、最大元がなければ最小上界は集合の外にあります(その辺の事情はこちら)。
最大下界と最小元の間にも、これに対応した関係が成立します。

さて、さっきつくった集合の無限列 ですが、とりあえず、そのすべてに最大元が存在する、という場合について考えましょう。そうでない場合については後回しです。
まずは、 の中で、最大元を探します。探していくと、たとえば、「あ、 が最大値だ」、ということがわかったとしましょう。これをまずは覚えておきます。
次のステップがちょっと変わっています。 を取り出したので、番号がそれ以下の要素はもう用なしじゃー、というわけで、一気に に進みます。で、また最大元を探します。今回は が最大元だったとしましょう。さっきと同じで、これを覚えておいて、 に飛びます。で、また最大元を探します。 が最大元なら、それを覚えておいて、 に飛びます。この作業を、最後までやります。というか、無限にやります。
そうすると、取り出した最大元の列が、

というふうに並ぶことになります。部分集合の最大元が、もとの集合の最大元よりも大きいわけはありませんから、大小関係的には

となっているはずです。つまり、この実数列は単調減少です。
この実数列の要素の集合 は、もちろん の部分集合ですから、 有界であることから、これも有界だといえます。
また、一つ最大元を取り出すと、添字番号がそれ以下の要素は用済みとして捨てられますから、そのあとに取り出される最大元の添字番号は、前に取り出されたやつより必ず大きくなります。実際、上の例でも、

となってますよね。このように、添字番号が、元の数列の順番にちゃんと並んでいるので、上の実数列は元の実数列の部分列だといえます。
というわけで、以上のやり方でつくった実数列、たとえば

は、もとの数列の部分列であり、また有界であり、かつ単調(減少)ですから(有界で単調なら収束することにより)、収束する部分列だということがわかります。



さて次は、 のすべてに最大元が存在するわけではない(つまり、最大元が存在しない部分集合が少なくとも一つある)場合について考えないといけません。
この場合もとりあえず、最大元はすべての部分集合に存在するわけではないが、最小元ならすべての部分集合に存在する、そういう場合について考えます。最大元・最小元ともに、すべての部分集合に存在するわけではない場合については、また後回しです。
とはいえ、この場合は、前項の方法とほとんど同じです。最大元を探す代わりに、最小元を探して取り出していけば、同じように有界で単調な(つまり収束する)部分列が作れます。
実際、このやり方で、

が取り出されたとすると、部分集合の最小元が、もとの集合の最小元より小さいわけはありませんから、

となっているはずです。つまり単調増加ですね。
あとの理屈は前項とまったく同じで、そうやってつくった実数列は、もとの数列の部分列であり、また有界であり、かつ単調(増加)ですから、(有界で単調なら収束することにより)、収束する部分列だということがわかります。



さて、つくった集合の列 について、最大元なら全部にある、とも、最小元なら全部にある、ともいえない場合について考えましょう。つまり、最大元がない集合が少なくとも一つあり、かつ、最小元がない集合が少なくとも一つある場合です。
結論から言うと、この場合、最小上界に収束するような部分列をつくるやり方と、最大下界に収束するような部分列をつくるやり方の二つがあります。以下では最小上界に収束する方を説明しますが、最大下界に収束する方も、考え方はまったく同じです。なお、ここでつくられる部分列は、上の二つの場合とは異なり、収束はしますが単調とは限りません(単調でなくても収束しますのでお間違えなく)。
から、最大元のない集合を一つ見つけてきます。左から順番に確かめていって初めて見つかったやつでもいいですが、別にそうでなくてもいいです。
が最大元のない集合だったとしましょう。最大元はなくとも最小上界はありますから、それを とします。
ここで、最小上界が最大元でない(=集合に含まれない)ということの意味を再確認しましょう。「集合に含まれない上界である」ということは、その集合のどの要素よりも大きいということですよね。それから、「最小である」ということはこれより小さい上界はないということですよね。さて、ということは、最小上界よりも小さい(そして最大下界よりも大きい)実数は、すべてその集合の要素だということです。だって、最小上界よりも小さくて(かつ最大下界より大きくて)、かつ集合の要素でない実数があったとしたら、それはその集合の上界ですから、最小上界よりも小さい上界がある、という変なことになってしまいます。だから、集合内のどの要素を取り出しても、それと最小上界の間には、必ず別の要素が存在するはずです。
数直線のイメージでいうと、最小上界 の左側には、集合 の要素がびっちりつまっているということです。
このイメージを抱いた上で、集合 を考えてみましょう。この集合は、 から を抜いただけであとは同じ、というものですよね。びっちりつまっているところから、実数を一つ抜いただけですから、びっちりつまっていることに代わりはありません。つまり、 の左側には、 の要素がびっちりつまっています。同じことが にも にも、このあとずうっと成り立ちます。つまり、上でつくった集合の無限列においては、最大元がない集合が一つあれば、そのあとの集合全部についても、最大元はなく、かつ最小上界は共通、ということがいえるのです。

さて、さっきの、最大元のない集合 に戻りましょう。ここから、 を取り出します。これは の中で一番番号の若い要素です。
次に、最小上界 の(数直線上の)左側に、距離 区間を設定します。そのうえで、 について考えます。 の左側には の要素がびっちりつまっていますから、そこから適当に1つピックアップします。そうですね、 を取り出したことにしましょう。このとき、当然、

が成り立っています。
添字番号がこれ以下のやつは用済みだ、というわけで、 に移ります。区間の設定をさっきの半分にして、 の左側に距離 区間を設定し、 の要素がびっちりつまっているところから、この区間に入る要素を一つピックアップします。 を取り出したとしましょう。すると

が成り立っています。
また用済みだ、ということで に移り、区間をさらに半分の にして、また要素を取り出します・・・
この作業を無限に繰り返していくと、実数列

が得られますが、まず、「用済み切り離し作戦」によって、添字番号の大小はもとの実数列の並びを踏襲できていることがわかります。だからこれは、もとの実数列の部分列です。
また、各要素の位置ですが、

というふうに、 を起点にどんどん狭くなる幅の中に押し込められていくことがわかります。これと同じことを距離で表現すると、

というふうに、添字番号が進むほど、 との距離はどこまでも小さくなっていきます。これは逆にいうと、任意の に対して、

を満たすような (とそれに対応する )を見つけることができる、ということですから、上のようにしてつくった実数列

は、収束の定義にしたがって、 に収束する、ということができます。こうやって、収束する部分列をつくることができました。
以上で証明は終わりです。