0.999...=1?
【はじめに】
このページは 0.999... = 1 教の頑なな教えに一石を投じるために書かれました。 0.999... ≠ 1 ではないかと考える初心者に対して、 0.999... = 1 教を信仰する人々は 「疑うな、0.999... = 1 は神のお告げである」 と称して数学者から見ると怪しげな証明を初心者に叩き込みます。 その結果、頑なな 0.999... = 1 教の信者が拡大再生産されていきます。 なんとも不毛なやり取りではないでしょうか?
しかし、冷静に考えれば、0.999... ≠ 1 ではないかという疑問は、 もっともな疑問なのです。学校で習った数の順序を素直に適用するなら、 0.999... ≠ 1 という結果の方がむしろ自然です。 実際、解釈を工夫すれば 0.999... ≠ 1 は必ずしも間違いとは言えません。
よく言われる、9 が有限個なら 1 より小さいが、 9 を無限に並べれば 1 になるのだなどという説明は根拠のないデマです。 無限という表現を避けて正確に説明するなら (つまり、イプシロン-デルタ論法式に説明するなら) 必要に応じていくらでも多くの 9 を並べたとしても 1 にはなりません。 それだけではダメなのです。この点に関しては初心者の 0.999... ≠ 1 なのでは?という疑問の方が正しいと言えます。 0.999... = 1 教の信者は無限という言葉のあやふやさで誤魔化していますが、 現実には、9 を無限に並べることと 0.999... = 1 との間には直接的な因果関係は無いのです。
ところが、実数には 0.999... = 1 教の信者にも知られていない仕組みがあって (つまり、イプシロン-デルタ論法には同値類という仕組みがあって) その仕組みを適用すると 0.999... = 1 という結果が導かれるのです。 イメージとしては四捨五入に似ています。 ぶっちゃけ、0.999... なんてほとんど 1 なんだから 1 と見なそうぜ。 もっとアバウトに行こうよという感じでしょうか。 ただ、この仕組みは大学レベルの数学であるため、 おそらく、9割がたの人が 0.999... = 1 の本当の秘密を知りません。
9 を無限に並べれば 1 になるのが根拠ないデマと言いましたが、 実はちょっと言い過ぎで、このアバウトな仕組みを使うと合わせ技で 9 を無限に並べれば 1 になるようなファンタジーが提供されることになります。 詳しい話を知りたい人は 神秘の無限和 をご覧ください。 そして、このファンタジーがあまりに普及し過ぎたため、一方的な 0.999... = 1 という解釈が一人歩きしてしまっているのが現状です。
どうでしょう。0.999... = 1 が神のお告げではないことが見えてきたでしょうか? このページでは 0.999... = 1 の本当の秘密を白日の下に晒すことで、 0.999... = 1 教と 0.999... ≠ 1 教の人々が平和に共存できる道を探ります。 と意気込んだものの、どっちの信者からも敵視されちゃうかもね(笑)
【概要】
イメージがつかめないから、 もうちょっと具体的に!という人に説明しておきましょう。 この概要が本ページ全体で主張する内容の大まかな説明となります。
0.999... が無限小数であると考えるとき、0.999... = 1 教の信者も 0.999... ≠ 1 教の信者も次の等式が成り立つことに異論はないでしょう。 \[ 0.999\ldots = 0.9 + 0.09 + 0.009 + \cdots \tag{等式-1} \] ただし、0.999... の「...」は必ず 9 で展開し切れることとします。 つまり、0.999999999... のように展開し切れず「...」が残ることはないとします。 当たり前じゃないかと思うかもしれませんが、この条件は結構重要で、 この条件を満たさないと、0.999... は小数展開できなくなります。つまり、0.999... が素朴な意味での無限小数や有限小数ではないものになり得るということです。 ここでは (等式-1) を、そのような素朴な意味ではない無限小数とは考えず、 有限和と同様に素朴な意味での和と考えます。
このとき、0.999... ≠ 1 教の信者は (無限小) ≠ 0 であるとして 0.999... = 1 - (無限小) と考えていると思います。 つまり、無限小は実数ではないので、0.999... も実数ではありません。 しかし、0.999... = 1 教の信者は 0.999... を実数と考えており、 無限小など不合理だとして、 実数における唯一の合理的な解釈は (無限小) = 0 だとしているはずです。 すると 0.999... = 1 - (無限小) = 1 - 0 = 1 となって、 0.999... = 1 という結論になり、0.999... は実数になります。 ところが、(無限小) = 0 だとするとおかしなことが起こります。
無限小数 0.999... が実数であると仮定し、 (等式-1) を満たすとします。このときその無限桁目を考えてみてください。 「...」は必ず 9 で展開し切れるのですから、無限桁目は 0.00...09 と 9 の前に 0 が無限に並んだ数になりますよね?これは無限小です。 0.999... = 1 教の信者は (無限小) = 0 と考えているのですから、 0.999... の無限桁目は全て 0 です。 しかし、無限桁目が全て 0 の小数とは有限小数のことですから、 0.999... は有限小数ということになってしまいます。 そして、(無限小) = 0 ですから無限の彼方からの繰り上がりは不可能です。 つまり、繰り上がりの結果、9 が 0 になったわけではありません。 したがって、0.999... の整数部は 0 であり、 少なくとも小数点以下1桁目から3桁目までは 0 ではないはずです。 よって、0.999... ≠ 1 です。これは、0.999... = 1 - (無限小) と考えた場合の結果である 0.999... = 1 と矛盾します。
何故、こんな矛盾が起きたのでしょうか? 実は (等式-1) を満たすとしたことが原因です。 0.999... が実数であると考えようとすると (等式-1) は成立しないのです。 (等式-1) が成立するとした場合、0.999... は実数ではなくなります。 その結果 0.999... ≠ 1 が成立することになります。
では、0.999... = 1 教の信者が望む結果を得るにはどうしたらよいのでしょうか。 それには、 \(\mu(x)\) を \(x\) を代表元とするイプシロン-デルタ論法の同値類と定義して、 \[ 0.999... = \mu(0.9 + 0.09 + 0.009 + \cdots) \tag{等式-2} \] と考える必要があります。 つまり、0.999... は素朴な意味での無限小数ではないのです。 このとき、\(x\) は実数でなくてもかまいません。 しかし、\(\mu(x)\) は実数を返します。これが大学レベルの数学というやつです。 超準解析で考えると \(\mu(x)\) は標準部分関数 \(\mathrm{st}(x)\) のことです。 \(\mu(x)\) の性質を少しだけ説明すると、 \[ \mu(0.9 + 0.09 + 0.009 + \cdots) = \mu(0.9) + \mu(0.09) + \mu(0.009 + \cdots) \] が成り立ちます。ただし、\(\mu(x)\) は有限個の和にしか分配できません。 無限個の和に分配してはいけません。また、 \(\mu(0.9)=0.9\)\(,~\)\(\mu(0.09)=0.09\)\(,~\)\(\mu(0.009+\cdots)=0.01\) が成り立ちますので、 \[ 0.999\ldots = 0.9 + 0.09 + \mu(0.009 + \cdots) = 1 \] となって、(等式-1) との違いは極めて微妙なものです。 それでも、(等式-1) が成り立つ場合は 0.999... ≠ 1 が正しいのです。 もちろん、(等式-2) が成り立つ場合は 0.999... = 1 が正しいです。 ちなみに、(等式-2) が成り立つとき \((無限小)\ne 0\) ですが、 \(\mu((無限小))=0\) なので、実数においては無限小は 0 と見なせます。つまり、 \(0.999\ldots\)\(~=~\)\(\mu(1-(無限小))\)\(~=~\)\(\mu(1)-\mu((無限小))\)\(~=~\)\(1-0\)\(~=~\)\(1\) ということです。
さて、ここでは (等式-1) の右辺を素朴な意味での和と考えましたが、 多くの書籍では無限級数を表すとき、暗黙の裡に \(\mu(x)\) を適用した結果として扱っていると思います。 つまり、無限級数を単なる和とは考えず、和の列が収束する値としていると思います。 なので、(等式-1) と (等式-2) は実際には区別できないことがほとんどでしょう。
しかしそうなると、和でないものを和であるかのように扱って式を変形するのは、 本来はよろしくありません。まずは、\(\mu(x)\) の線形性を説明する必要があります。 \(\sin x\) と \(\cos x\) をテイラー展開して合わせると指数関数になりますなどと、 いかにも無限級数は単なる和であるかのようにオイラーの公式を証明しておいて、 0.999... の話になると、いや無限級数は単なる和ではありませんなんて言われると、 どゆこと?今までの話は何だったの?となってしまうでしょう。
正直に言えば、私もさんざん \(\mu(x)\) を省略した書き方をしてきました。 しかし、数学のこの習慣はあまり良い習慣ではないと思います。 \(\lim\) を使って書けば問題ありませんが、 単なる和の形で書くのは初学者をいたずらに惑わせる原因になってはいないでしょうか? 「\(\cdots\)」という記号は有限和の場合にも用いられ、 無限和の場合とは全く意味が異なります。しかも十分な説明はまずありません。 これでは、有限和の延長で考えている初学者にとっては嘘をつかれているのと同じです。 0.999... ≠ 1 と主張する初学者が後を絶たないのもやむを得ないのかもしれません。
【イプシロン-デルタ論法】
以下、事情を知っている人向けの御託が続きます。 さっさと本題に入ってよという人は、 チャチャっとスクロールして次のセクションから読んでみてください。 あるいは、以下のリンクから 0.999... < 1 は正しい? をご覧ください。または高校数学は難しいという人は 四捨五入と実数 をご覧ください。さらには、0.999... = 1 なんて当たり前でしょ?という人は アルキメデス性による証明 を読んで、古臭い知識で恥をかかないように知識をアップデートしておきましょう。
さて、0.999... を理解するにはどうしても極限の話が必要です。 極限を正確に理解するには、イプシロン-デルタ論法に翻訳する必要がありますが、 簡単な極限を計算するのにいちいちイプシロン-デルタに翻訳する人は居ないでしょう。 ほとんどの人は無限大や無限小を使って直観的に極限を計算しているはずです。 0.999... = 1 教の信者は、 そのような計算はデタラメだと思っているかもしれませんが、 実際には数学的な根拠があります。超準解析や述語論理のコンパクト性定理などです。 もし、デタラメなのだとしたら無限小数という概念自体が矛盾してますよね。 イプシロン-デルタ論法には無限は存在しないのに、9 を無限個並べるとは何なのか?
そこでここでは、 0.999... の話をするとイプシロン-デルタ論法がどうのこうのとよく聞くけど、 それって何なの?という人に、イプシロン-デルタ論法の一部を種明かしします。 そして、直観的な極限の計算との関係を明らかにします。 というのも、イプシロン-デルタ論法を魔法の一種だと思っている 0.999... = 1 教の信者は結構居るからです。 そして、イプシロン-デルタ論法を使えば 0.999... = 1 であると思い込んでいます。 もちろん、同値類を適用した結果は 0.999... = 1 ですが、 単に 9 を無限に並べただけなら 0.999... ≠ 1 なのです。
まずは、その誤解を解いていきましょう。高校数学で次のことを考えてみてください。 \[ f'(x) = \lim_{\varDelta x\to 0}\frac{f(x+\varDelta x)-f(x)}{\varDelta x} \] 上記の微分の定義において、\(\varDelta x\) は決して \(0\) ではありません。 もちろん、特定の固定された微小な実数でもありません。 必要に応じていくらでも小さくできます。 すなわち、\(\lim\) の中は普通の実数の世界ではありません。 もし、\(\varDelta x\) が \(0\) だとすると、 微分の定義は破綻してしまいます。\(0/0\) は不定なのですから。 つまり、\(\lim\) の中では、 0 に限りなく近いが 0 ではない数すなわち無限小を考えるのです。 ならば、1 に限りなく近いが 1 ではない数があったとしても不思議ではないでしょう? 無限小など不合理だ。だから 0.999... = 1 なのだとよく言われますけれど、 実際、微分の定義の中で無限小を考えるのだから初心者が混乱するのも当然です。 もちろん、大学レベルの数学ではイプシロン-デルタ論法に翻訳しますが、 \(\lim\) の中では 0.999... ≠ 1 であることに変わりはありません。 繰り返しますが、そうでないと微分の定義は破綻します。
正確に述べると、0.999... と 9 を無限に並べた数の性質を知りたければ、 次のことを調べれば十分です。つまり、何らかの自然数を \(m\) とするとき、 \(n\ge m\) であるような全ての自然数 \(n\) に対して、 0.999...9(9 が \(n\) 個)すなわち \(1 - 1/10^n\) のことを調べれば十分です。 実際に無限に並べることはできないので、これで代用します。 自然数は全部で無限個ありますから妥当ですよね。 そして、\(n\ge 0\) である全ての \(n\) に対して、 \(1 - 1/10^n\ne 1\) であることを帰納法で証明できますから、 これにより、0.999... ≠ 1 であることが確認できます。 これが、イプシロン-デルタ論法です。その一部ですけどね。
ただし、\(\lim\) の中と外で、 0.999... という表現に複数の解釈があるので注意してください。 \(\lim\) の中では単に 9 を無限に並べたものを表し、 \(\lim\) の外では無限に並べた 9 に対し同値類を適用したものを表します。 一見、0.999... は実数のように見えますが、 \(\lim\) の中では固定された数ではありません。\(\varDelta x\) と同様ですね。 しかし、\(\lim\) の外では同値類で丸められて 0.999... = 1 になります。 同様に、無限小は 0 になります。 もっとアバウトに行こうよということです。 どうです。思い当たる節があるでしょう? 高校数学で基本的な微分の公式を求めるときに、 誰しもそういう計算をしたはずです。 何故、無限小を 0 とするのか深くは考えなかったでしょうけれど。
いまいち信用できないという人は、 次の問題を考えてみると話が飲み込めるでしょう。 \[ \lim_{n\to\infty}\left\lfloor 1-\frac{1}{10^n}\right\rfloor = 0 \tag{式-1} \] これは決して次の問題と等価ではありません。 \[ \left\lfloor\lim_{n\to\infty}1-\frac{1}{10^n}\right\rfloor = 1 \tag{式-2} \] \(\lfloor x\rfloor\) は床関数と言います。 \(x\) を超えない最大の整数を返します。正確な説明ではありませんが、 分かりやすく言うと、0 以上の数で考えた場合、 小数部分の切り捨てのことです。つまり整数部分を返します。
インターネットの質問サイトで、質問者が(式-1)のつもりで質問しているのに、 答える 0.999... = 1 教の信者たちが、 ことごとく(式-2)の話をしているというのを見たことがあります。 無意識のうちに 0.999... ≠ 1 を直視するのを避けているのでしょう。しかし、 (式-2)の床関数の中身が 1 であることは分かり切った話で質問するまでもありません。 問題なのは(式-1)の床関数の中身はどのような数なのかということです。
仮に、その数を \(x\) としましょう。どんな有限桁の 0.999...9 を想定しても、 \(x\) はそれより大きくなることは明らかです。 しかも、\(x=1-1/10^n\) は \(n\) が自然数なら 1 より小さいことが帰納法で証明できますので 0.999...9 < \(x\) < 1 です。 普通に考えると、全ての 0.999...9 に対して条件を満たす共通の固定された \(x\) は存在しませんが、\(\lim\) の中は普通の実数の世界ではないので、 \(x\) は固定されておらず必要に応じて大きくなります。 それならば、任意に決めた 0.999...9 に対して、 0.999...9 < \(x\) < 1 を満たす \(x\) は常に存在します。つまり、 0.9 < \(x\), 0.99 < \(x\), 0.999 < \(x\), ... , \(x\) < 1 であり、 それを満たす \(x\) は同値類に丸められていない生の 0.999... だと考えざるを得ないでしょう? 何となく、\(x^2+1\) の剰余体で複素数を定義できることと似ています。 分かる人には述語論理のコンパクト性定理と言えば分かりますよね。
正式な極限の考え方では、この場合、\(n\) が有限なときの数列に翻訳するので 0.999... のような数は登場しませんが、 \(\lim\) の中をひとつの式と見なして、 その値を同値類で丸めたものを極限値と考える場合には \(x\) = 0.999... であると考えることになります。 この考え方に根拠を与えているのが超準解析です。 もう少し詳しく知りたい人は 超準解析 のセクションを読んでみてください。
まだ納得できないという人も居ると思います。 自然数が全部で無限個あるということは、 無限番目の自然数は有限ではないのではないか?これは矛盾だと。おっしゃる通りです。 しかし、 「無限個」と言った時点で普通の自然数の話ではないことにお気付きでしょうか?
ここで、無限個とは数え終わらないことだと定義し直しましょう。 何が違うのかって? 例えば、100 までの数を自然数と定義したとしましょう。 全部数えてくださいと言われたので、あなたは全部数えてこう言いました。 数え終わりました。すると、やっぱり 1000 までの数を自然数と定義します。 数えてください。と言われました。 仕方がないのであなたは 1000 まで数えてこう言いました。 数え終わりました。すると、やっぱり 10000 までの数を自然数と定義します。 数えてください。と言われました。 もう、お分かりですよね。ゴールを動かされたら数え終わるはずがありません。 しかも、個々の瞬間だけ見れば、有限な話しかしていません。 これが「無限個」の正体なのです。
\(\lim\) の中では、 \(\varDelta x\) や 0.999... が固定された数ではなかったのはそのためです。 0.999... は動きませんと説明する人も多いですが、 少なくともイプシロン-デルタ論法において、それは誤りです。 つまり、無限番目の自然数とは特定の自然数のことではなく、 必要に応じていくらでも大きくできる数のことだったわけです。 無限大のことをとても大きな数と考えるのは間違いであると言われますが、 実際には、とても大きな数でほぼ間違いではないのですね。 その数が固定されていないということにさえ気が付けば。
ここまで説明してきて、 何が 0.999... = 1 教と 0.999... ≠ 1 教の食い違いを生んでいるのか、 おぼろげながら見えてきたと思います。 つまり、片や \(\lim\) の外の話をしている。 片や \(\lim\) の中の話をしているという食い違いなのです。 それさえ区別すれば、0.999... = 1 も 0.999... ≠ 1 も矛盾しません。 どちらか一方の世界しか存在しないと強弁を張ろうとするからややこしいことになるわけです。
もし、0.999... をめぐるイプシロン-デルタ論法のウンチクに興味があるなら、 神秘の無限和 も読んでみてください。へえ、イプシロン-デルタって結構身近なことを正確に理解するのにも必要なんだと頷いてもらえると思います。
さて、さんざん知ったような口ぶりで書いてきましたが、 実は私にもよく分かっていないことがあります。 実無限の立場で考えたらどうなるのだろうかという問題です。 つまり、自然数を順序数 \(\omega\) と考えたらどうなるのか。
\(\omega\) の無限番目の数と言ったら、 \(\omega\) の \(\omega\) 番目の数ということになりますが、 それは、\(\omega-1\) となり定義できません。定義できないのだから、 自然数のはずの \(\omega-1\) が有限ではないのでは?という矛盾も導けませんけれど、 どうにも分かったような気がしません。
\(\omega\) の後ろの方がどうなっているのか考え出すと夜も眠れません。 常に、ホニャララを満たす全ての自然数という形、 つまり、無限集合としてしかアクセスできない数達。 その正体とはどんなものなんでしょうね。 誰か私に魔法の種明かしをしてほしいものです。
【0.999... < 1 は正しい?】
あなたも一度はこれを聞いて不思議に思ったことがあるはずです。 すなわち、「0.999... と 9 が無限に続く数は 1 である」と。 しかし、直感で考えると「0.999... < 1」ですよね? この直感は本当に間違っているのでしょうか。 ご安心ください。ここでは、この直感が必ずしも間違いとは言えないことを説明します。 ただし、説明には高校レベルの数式をたくさん使います。 数列とか\(\Sigma\)とか難しい話はいやだという人は 四捨五入と実数 をご覧ください。
まず、「0.999... = 1」はどう言う時に正しいのでしょうか? 実は、この式が正しいのは考えている数が実数とか有理数の場合です。 それ以外の数を考えているのなら、この式は必ずしも正しくありません。
実数とか有理数でないとしたら、他にどんな数があると言うのか? と思う人もいるかもしれません。 しかし、意外と身近に実数でも有理数でもない数は使われているんですよ。 10進表記が正にそれです。
そんなバカな!10進表記は実数に決まってるって? いやいや、そんなことはありません。10進表記は実数より精度の高い数なんです。 つまり、実数より細かい順序を区別できます。 実数は、それを直接表現するうまい方法がないので、 表現方法として10進表記を流用しているだけなんです。 10進表記の方が精度が高いので、精度の低い実数を表すぶんには問題はありません。
それではまず、10進表記の順序について説明しましょう。 10進表記は、\(a_0\) を整数部とし、\(a_n~(n=1,2,3,\ldots)\) を小数点以下 \(n\) 桁とする数列 \(\{a_n\}\) と同一視できます。 1.000... なら \((1,0,0,0,\ldots)\) という数列、 0.999... なら \((0,9,9,9,\ldots)\) という数列と等価とみなすことができます。 2つの10進表記 \(\{a_n\}\) と \(\{b_n\}\) があるとき、 辞書式順序という我々のよく知っている順序で比較すれば、両者の大小が決まります。 え?順序にも種類があるの?という人もいるかもしれませんね。 そうなんです。実は実数の順序って、 我々がよく知っている辞書式順序とは違うものなんです。 実数の順序ってとても難しいんですよ。
一方、 辞書式順序というのは、abc と acc を比較するとき、まず先頭から比較を開始します。 先頭は共に a ですから決着はつきません。次に2文字目を比較します。 2文字目は b と c なので c の方が大きいので決着がついて abc より acc の方が大きいということになります。辞書を引くときの順序ですね。 10進表記を比較するときも、 同じことを数列でやってやります。先頭の数から比較をはじめ、 どちらかの数列の要素で大きいものにたどり着いたときに全体の大小が決まります。 \(\{a_n\}\) より \(\{b_n\}\) が大きいときに \(\{a_n\}\lt\{b_n\}\) と書きます。 比較するのに、実数は一切関係が無いことに注意してください。
次に、10進表記に対応する実数 \(x\) の求め方を説明しましょう。 10進表記を実数に変換するには以下の公式を使います。
\[ x = \sum_{n=0}^{\infty}\frac{a_n}{10^n} \]この計算をした段階で精度が落ちます。つまり、\(\{a_n\}\lt\{b_n\}\) でも \(\displaystyle \sum_{n=0}^{\infty}\frac{a_n}{10^n}=\sum_{n=0}^{\infty}\frac{b_n}{10^n}\) となることがあるわけです。 ただし、\(\displaystyle\sum^{\infty}_{n=0}\) とは厳密には \(\displaystyle\lim_{m\to\infty}\sum^m_{n=0}\) のことです。 この \(\lim\) が曲者なことは後で説明します。
実際、0.999... と 1 を比較してみてください。 これは 0.999... と 1.000... の比較です。 辞書式順序で比較すれば、疑いの余地なく先頭が 1 の 1.000... の方が先頭が 0 の 0.999... より大きいですね。すなわち、0.999... < 1 です。 つまり、10進表記では大小関係に関して 0.999... と 1 の区別がつけられるのです。 一方、実数の方は、完備順序体になっていないといけないので、 各種演算法則を考慮すると 0.999... = 1 でなければなりません。 つまり、実数では 0.999... と 1 の区別がつけられないのです。
重要なことは、ほとんどの人は実数を比較するとき、 10進表記の辞書式順序で比較しているであろうことです。 要するに、0.999... = 1 に感じる違和感は、 我々が無意識のうちに実数ではなく10進表記で比較していることに起因するのでしょう。
よく、0.999... は 1 の別表現なのだが、 1つの数を表す方法は1通りであるという先入観のせいで 0.999... ≠ 1 だと誤解するのだと説明する人達がいます。 しかし、辞書式順序で比較している人にとっては 0.999... と 1 は疑いの余地なく明確に異なる数ですから、 そんな説明では納得してもらえないでしょう。 実際、普通の人が知っている唯一の順序は辞書式順序だろうと思います。 日常生活はおろか理系でも工学的にはそれで事足りますからね。 実数の順序を知っている人なんて数学者かマニアックな変わり者くらいでしょう。
つまり、0.999... = 1 に疑問を感じる人は、 学校で習った辞書式順序をしっかりと使っているからこそ疑問を感じるのです。 実数の順序と辞書式順序が異なることって明示的には習いませんよね。 その一方で、0.333... = 1/3 で 0.333...×3 = 1 だから 0.999... = 1 などと、 根拠のハッキリしない証明を鵜呑みにしてしまう人もいます。それに比べたら、 0.999... = 1 に疑問を感じる人の方が、むしろ数学的センスはあると言えます。 今まで自分が習ってきたことでは、 うまく説明できない不思議なことが起こっているのですから、 何かがおかしいと感じ取る嗅覚がないと数学の道を歩むのには向きません。
さて、他にも実数より精度の高い順序は存在します。 実数 \(x\) に対して \([0,x]\) という閉区間を対応させるとします。 すると、\([0,0.5]\subset [0,1]\) のような包含関係がある場合に \([0,0.5]\lt[0,1]\) という順序を考えることができます。 ここで、\([0,1)\) のような半開区間を考えると、 \([0,1)\lt [0,1]\) となりますが、 \(0\le a\lt 1\) のとき、\([0,a]\subset [0,1)\) ですから、 \([0,a]\lt [0,1)\lt [0,1]\) となります。 \([0,x]\) は \(0\) 以上の実数と1対1対応していますから、 \([0,1)\) はどの実数とも対応しません。 つまり、集合の包含関係の方が実数より精度が高いわけです。10進表記で考えると、 \([0,1)\) は正に 0.999... と対応していると考えることができます。
ただし、10進表記にしろ集合の包含関係にしろ、 実数と同じ四則演算を導入することはできません。 無理やり四則演算を定義しても実数とは異なる風変わりな計算法則になります。 実数における和や積と大小の関係を規定した公理が成り立つとは限りません。 なので、10進表記や集合の包含関係を実数の代わりに使うことはできません。
【四捨五入と実数】
ここでは、高校数学は難しいのでもっと簡単に説明してよという人のために、 別の角度からの説明を試みます。 四捨五入のアナロジーを使って、実数においては 0.999... = 1 が正しいことを説明し、 続いて、実数ではない数で考えると 0.999... ≠ 1 であることを説明します。
まず、1.2 を四捨五入することを 《1.2》 と書くことにしましょう。 つまり、《1.2》 = 1 です。あるいは 《1.5》 = 2 ですね。 この書き方を使うと、《0.9》 = 《1》 という等式が成り立ちます。 同じようにして、《0.99》 = 《1》 であり、《0.999》 = 《1》 ですね。 すなわち、大まかに同じものは完全に同じと見なすということです。
ところで、ご存じないかもしれませんが、専門的には、 実数はほとんど同じものは完全に同じと見なすという仕組みで作られています。 ここは、そういうものなんだと飲み込んでください。 なんとなく、上記の四捨五入の話に似てますよね。 実数のこの仕組みを 0.999... に適用することを [0.999...] と書くとします。 すると、[0.999...] = [1] という等式が成り立ちます。 0.999... と 1 はほとんど同じなので完全に同じと見なすわけです。 四捨五入と違うのは、 [0.9] ≠ [1] であり、[0.99] ≠ [1] であり、[0.999] ≠ [1] であるということです。 つまり、見分けがつかないくらいほとんど同じでないとダメということです。
実は、実数の関係式は、いつもこの [ ] が付いた形で考えるのが正式な解釈です。 つまり、x と y という数があった場合、実数の関係式は [x] = [y] のように書くのが正式な書き方です。
でも、いつもいつも [ ] を付けて書くなんて面倒くさいですよね。 そこで、数学ではよくあることなんですが、誤解の恐れがない限り、 [x] = [y] を x = y と書いてしまいましょうということになっているのです。 つまり、[0.999...] = [1] を 0.999... = 1 と書いてしまうのです。 いや、めっちゃ誤解の恐れがありますよねぇ。 いささか強引さを感じますけれど、 そういう習慣になっているので仕方がありません。 とにかく、これで 0.999... = 1 に納得していただけたと思います。
さて、ここまで説明をぼかしてきましたが、 [ ] が付かない生の 0.999... は何を表しているのかという問題があります。 実のところ、いろいろ考えることができて、 10進表記とかコーシー列とか超実数とかいろいろあります。 そんなの分からないよという人は、 素人が素朴に考える実数モドキの数とでも思っておいてください。 大事なことは、生の 0.999... を考えると、 ほとんど同じものを完全に同じと見なすとは限らないので、 0.999... ≠ 1 となってもおかしくないということです。
どうでしょう。絶対 0.999... ≠ 1 のはずなのに、 頭の良さそうな人が、いや 0.999... と 1 は完全に等しい。 と断言する理由がご理解いただけたでしょうか。 つまりは、[0.999...] と [1] は完全に等しいと言っているのですね。 要するに、 0.999... = 1 という式をどう解釈するのかという定義の問題だったわけです。
【2つの実数の等値判定】
ここでは、実数の精度が低いことを実感できるもう1つの根拠を、 高校数学における極限の概念を用いて示しましょう。 皆さんは10進表記を使わず、 2つの実数 \(a, b\) が等しいことを確認しろと言われたらどうしますか? そうですね、\(a - b\) を計算してみて完全に \(0\) になれば OK ですよね。
しかし、この判定には微妙な部分があることをご存じでしょうか? この判定は極限が出てこない間は問題ありませんが、 極限の概念を取り扱うと、完全なるイコールと考えるには微妙な部分があるのです。
\(\displaystyle\lim_{n\to\infty}a_n = a\) かつ \(\displaystyle\lim_{n\to\infty}b_n = b\) としましょう。 \(\displaystyle\lim_{n\to\infty}(a_n - b_n) = 0\) なら \(a = b\) です。 つまり、\(a_n\) と \(b_n\) の差の絶対値が、 いくらでも小さくできるのなら両者は等しいということです。重要なことは、 \(a_n\) と \(b_n\) の差は完全な \(0\) とは限らないこということです。 どこまでも \(0\) に近づけられるけれども \(0\) ではない場合もあります。 つまり、細かい差は無視してしまうということです。 \(a - b\) は \(\lim\) の中身を考えると \(0\) ではなく、 \(\lim\) によって無限小の差が丸められて \(0\) に見えているのです。 つまり、本来ならば無限小の誤差があるのかもしれないのです。
0.999... は数列 (0.9, 0.99, 0.999, ...) の極限と考えることができ、 1 は数列 (1, 1, 1, ...) の極限と考えることができます。 よって、0.999... - 1 は \(\lim\) の中身まで考えると、 無限小の誤差があるのですが、丸められて 0.999... - 1 = 0 となっているのです。 0.999... = 1 となっても何も不思議ではないですね。 これで実数の精度が低い理由が分かったと思います。
大学レベルの数学で説明すると、\(a,b\in X\) のときに (\(a-b=無限小\)) なら \(a\sim b\) と書いて \(a\) と \(b\) は限りなく近いと言うとするなら、 \(\sim\) は同値関係となり、 商集合 \(X/\sim\) が実数の集合と見なせるということです。 つまり、\(\sim\) を \(=\) と読み替え、 無限小を \(0\) と読み替えると実数と同じ構造の空間になります。 すると、\(X\) とは何ぞやということになりますが、 素人が素朴に考える実数モドキの集合とでもしておきましょう。 つまり、素人が実数と思っているもの \(X\) と、 数学者が実数と思っているもの \(X/\sim\) は別物で、 この違いを理解できない人が実数において 0.999... < 1 と頑なに主張することになるのでしょう。
【実数で、0.999... = 1 となる理由】
上記では、 実数や有理数でないなら「0.999... < 1」になり得ることを示しました。 これは逆に、実数や有理数ならば「0.999... = 1」ということです。 ここでは、なぜ 1 になるのか。その理由が分かる説明をしたいと思います。
まず、0.999... という表記が何を表すのかハッキリさせましょう。 ここが曖昧なままだと、何を説明されても納得できないですからね。 始めに、0.999... = 0.9999... = 0.99999... = … であると定義し、 その上で、\(a\) = 0.999... とおき、\(a\) は以下の条件を満たす実数と定義します。
- \(a\) は \(1\) より大きくなることはない。つまり \(a\le 1\) である。
- \(a\) は \(1\) に最も近い。ただし、必ずしも \(a = 1\) ではない。
条件1.は、\(a\) が \(1\) より小さい側から \(1\) に近づくことを表します。 条件2.をもっと具体的に書くと以下のようになります。
- \(a\lt b\lt 1\) となる \(b\) は存在しない。
「最も近い」という概念は案外難しく、条件3.がその定義となります。 「\(a\lt 1\) の範囲で \(1\) に最も近い」としてしまうと、 問題設定の段階で \(a = 1\) である可能性を排除してしまうことになるので注意してください。 また、\(a = 1\) なら最も近いことは自明なので、 条件2. 3.は最も近い数が複数あり得るか?と暗に仮定しています。
ここで、実数の稠密性を考えます。 実は、実数ではなく有理数でも良いのですが、ここでは実数で考えます。 つまり、以下の性質が成り立ちます。
\[ 任意の~x,~y~について、x\lt y~ならば~x\lt z\lt y~となる~z~が存在する \]例えば、\(\displaystyle z = \frac{x + y}{2}\) とすれば明らかですね。 この稠密性の対偶を取ると次の命題が成り立ちます。
\[ 任意の~x,~y~について、x\lt z\lt y~となる~z~が存在しないならば~x\ge y~である \]この命題の \(x,y,z\) に \(a,1,b\) を代入すると、 以下の命題が成り立ちます。
\[ a\lt b\lt 1~となる~b~が存在しないならば~a\ge 1~である \]そして条件3.より、\(a\lt b\lt 1\) となる \(b\) は存在しないので、 \(a\ge 1\) が導かれます。また、条件1.より \(a\le 1\) なので、 これを合わせると \(a = 1\) ということになります。 条件2.で \(1\) に最も近い数が複数あり得るか?と暗に仮定しましたが、 結局、\(1\) に最も近い数は \(1\) のみだったということです。
つまり、全順序な数体が稠密性を満たすならば、 必然的に 0.999... = 1 になるということです。 0.999... = 1 の秘密は実数や有理数の稠密性にあったんですね。 したがって、もし考えている数が稠密性を満たさないならば、 0.999... < 1 となってもおかしくないということです。 10進表記などは正に稠密ではありません。
【補足】
冒頭で 0.999... = 0.9999... = 0.99999... = … であると定義しているのは、 0.999... という表記の意味を定めるためです。 つまり、9 の部分の長さはいくらでも長くなり、事実上無限大であるということです。 無限小数展開と言ってしまえば簡単ですが、そういうわけにもいきません。 何故かというと、このセクションでの 0.999... 系の表記は、 「...」の部分を完全に 9 で展開することはできないからです。
たとえ 9 を無限に並べたとしても完全に展開し切ることはできません。 常に「...」が最後に残ります。ここは超準解析的に考える必要があるのですが、 もし展開し切れたとするなら、 \(a\) = 0.999...9 であり、0.000...1 だけ 1 より小さいので、稠密性より、 \(a \lt b \lt 1\) を満たす \(b\) が存在することになり、条件3.に反します。 よって、最後の「...」を展開し切ることはできません。 ですから、0.999... を無限小数展開と呼ぶのは本来は正しくありません。 0.999... という何か新しい表記法を定義しているのだと思った方が正確です。
もし、0.999... という表記の小数展開できた部分を無限小数と呼ぶのだとすると、 展開できていない部分と合わせてはじめて 1 になるのですから、 無限小数の部分は 1 より小さいということになります。 一部の初心者は無意識のうちにこの構造を感じ取っているのかもしれません。
ちなみに、0.999... = 0.9999... = 0.99999... = … のように無限に続けられるという考え方の後ろには選択公理が潜んでいるようです。 述語論理のコンパクト性定理がそれです。
このページでは、 0.999... という表記を色々な意味に解釈するので混乱するかもしれません。 この混乱が、 そのまま 0.999... = 1 の理解に対する混乱になっているとも言えるでしょう。
【稠密性】
上記の証明より、 0.999... = 1 が成り立つには稠密性が重要な役割を果たしていることが分かりました。 ここでは、もう少し稠密性について掘り下げてみましょう。 念のため、稠密性をもう一度説明しておくと、 \(x \lt y\) を満たす2つの数の間には、\(x \lt z \lt y\) を満たす数 \(z\) が必ず存在するという性質です。
はじめに、実数はなぜ稠密になるのかご存じでしょうか? 実数を定義する公理には、体と順序の公理に加えて、 次のような性質が公理として挙げられています。
- \(x \lt y~\Rightarrow~x + c \lt y + c\)
- \(x \lt y~かつ~c \gt 0~\Rightarrow~cx \lt cy\)
ただし、\(x,y,c\) は任意の実数とします。残る公理はデデキントの切断ですね。
性質1. 2.は、どちらも我々が実数の計算をするときによく使う基本的な性質です。 これが成り立たないと、ほとんど計算らしい計算はできないと言ってもいいでしょう。 この性質から、以下のようにして稠密性が導かれます。
まず、性質1.より、 \[ x \lt y~\Rightarrow~x + x \lt x + y \lt y + y \] 次に、性質2.より、 \[ x \lt y~\Rightarrow~\frac{x + x}{2} \lt \frac{x + y}{2} \lt \frac{y + y}{2} \] つまり、 \[ x \lt y~\Rightarrow~x \lt \frac{x + y}{2} \lt y \] となり、実数が稠密であることが分かります。
このことから分かるのは、素人が実数を独自解釈して特殊な数を考え出したとしても、 普通の計算法則を満たす限りは稠密性からは逃れられず、 ほぼ間違いなく 0.999... = 1 になるということです。 0.999... = 1 を否定したいのなら、0.999... の解釈を変更するか、 四則演算をあきらめるくらいのことをしないとうまくはいきません。
さらに、稠密性は実数の精度を落とす原因にもなっています。 最も精度の高い順序では、隣り合う点がピッタリとくっついている必要があります。 つまり、隣り合う点の間には他の点は存在しません。 例えば10進表記は正にそのような構造をしています。 10進表記では、0.999... < 1 ですが、 0.999... と 1 の間には他の点は存在しません。 まあ、隣り合うのだから当然ですけど。 10進表記の精度が実数よりも高いのは稠密性が成り立たないからです。
このことから、単純な無限列つまり生の 0.999... 等の集まりでは、 稠密性は実現できないことが分かります。よって、 単純な無限列を同値類に分類するのような操作をしないと稠密性は実現できません。 しかし、0.999... = 1 を主張する人の多くがそこには触れません。 これが、0.999... = 1 が理解されにくい一因になっています。
これは私の推測ですが、同値類を使って実数の稠密性を実現することは、 \(\lim\) の計算の精度を決めることにもなっていると思います。 稠密性から 0.999... = 1 が導かれることが、 \(\lim\) の振る舞いを規定することになっていると思います。
さて、締めくくりに稠密性と図形の関係に触れておきましょう。 稠密性を導いた性質1.と性質2.は、図形の平行移動と拡大縮小に関係する公理です。 長さや面積といった量は平行移動しても不変であり、 拡大縮小しても相似の関係を保つということです。 つまり実数とは、 図形的直観を自然に表現できるよう絶妙にデザインされた数なのです。 0.999... = 1 はそうした図形的直観と深く結びついた性質なのですね。 興味のある人はルベーグ積分など測度の話を調べてみると面白いですよ。 例えば、0.999... 等の表記も一種の図形と見なすことができます。 なので、実数の精度が低いのは零集合と関係していると私は思っています。
【無限小数の無限の意味】
実数において 0.999... = 1 となる理由は上記の証明で分かったと思います。 ここでは、補足説明として 0.999... と 9 が無限に長く続くとは、 実はどういう意味なのかを説明したいと思います。
0.999... < 1 派の人の思い込みを分析してみると、 0.999... の解釈の仕方が複数あることが見えてきます。 そして、0.999... = 1 派の人は1つの解釈のみを正しいとして譲らないため、 議論が嚙み合わなくなって平行線に終わるというやり取りを繰り返しているようです。 そういうわけで、 以下では、0.999... の解釈がどんな構造を取り得るのかを見ていきましょう。
0.999... = 1 に今一つ納得できないのは、 9 が無限に長く続くとはどういう意味なのか、 実はよく分からないのが原因の一つでしょう。 無限という言葉を額面通りに受け取ると意味不明になってしまいます。 そこで、\(a = 0.999\ldots\) として、 \(a\) の長さが無限に長いことを有限な式で具体的に定義してみましょう。
まず、\(f(x) = 10x - 9\) という関数を考えます。 \(f(x)\) に \(0.9999\) を渡すとこうなります。 \[ f(0.9999) = 9.999 - 9 = 0.999 \] 1桁短くなりましたね。これを繰り返すと、\(f(0.999) = 0.99,~f(0.99) = 0.9\) という風にどんどん短くなります。つまり、0.999...9 のような有限小数に \(f(x)\) を適用すると必ず1桁短くなるということです。したがって、 \(S=\{0.9,0.99,0.999,\cdots,a\}\) と定めて \(x \in S\) の範囲で考えると、 \[ x~は有限小数~\Rightarrow~x \gt f(x) \] が成り立ちます。 ただし、\(x\) の値の表記には数字の \(0\) と \(9\) と小数点のみを使うとします。 ここで上記の関係の対偶を考えると、 \[ x \le f(x)~\Rightarrow~x~は無限小数 \] ということになります。また、\(S\) の全ての要素 \(x\) について \(x \lt 1\) かどうかは意見が分かれる所ですが、 \(x \le 1\) であることには議論の余地はないでしょう。すると、 \[ x \le 1 ~\Leftrightarrow~ 9x \le 9 ~\Leftrightarrow~ 10x \le x + 9 ~\Leftrightarrow~ x \ge 10x - 9 \] となり、 \(S\) の全ての要素 \(x\) において \(x \ge f(x)\) となります。 したがって最終的には、 \[ x = f(x)~\Rightarrow~x~は無限小数 \] が成り立ちます。 よってこれを \(a\) が無限に長いことの定義にしてしまいましょう。 つまり、\(a = 0.999\ldots\) が無限に長いとは、 \[ a = f(a) \] が成り立つことであると。実際、数学的に厳密な計算とは言えませんが、 \[ f(a)=9.999\ldots - 9 = 0.999\ldots = a \] となります。
これで、\(a = 0.999\ldots\) が無限に長いとはどういう意味なのかハッキリしました。すると、 \[ a = f(a) ~\Leftrightarrow~ a = 10a - 9 ~\Leftrightarrow~ 9a = 9 ~\Leftrightarrow~ a = 1 \] となって、\(a = 1\) であることが分かります。
でも、こう反論されるかもしれません。 \(a = f(a)\) なら、いくら \(f(x)\) を適用しても \(a\) は短くならないから \(a\) が無限に長いのは分かった。 しかし、9 が無限に続いた果てに最後の 9 があったとするなら、 \(f(x)\) を適用すると1桁短くなるのではないか。 つまり、そのような \(a\) は無限に長くとも \[ a \gt f(a)~\Leftrightarrow~ a \gt 10a - 9~\Leftrightarrow~ 9a \lt 9~\Leftrightarrow~ a \lt 1 \] となって、無限に長いけれど \(a \lt 1\) になるのでは?
はい、そうですね、上記の説明では、 \[ x~は有限小数~\Rightarrow~x \gt f(x)\ \] が成り立つことは示していますが、 \[ x \gt f(x)~\Rightarrow~x~は有限小数 \] が成り立つことは示していません。 つまり、\(a \gt f(a)\) のときに \(a\) が無限小数になる可能性があり、 \(a\) が無限に長いのに \(a \lt 1\) となる可能性を排除できません。 実は、話を実数や有理数に限定すれば、 「\(x \gt f(x)~\Rightarrow~x~は有限小数\)」が成り立ちます。よって、 \(a\) が実数なら \(a\) が無限に長いの意味は \(a = f(a)\) に限定できます。 偉い数学者が実数とはそのようなものだと決めたわけです。 なので、素人が逆らうのはやめておきましょう。 実数のこのような性質をアルキメデスの性質と言います。
しかし、9 が無限に続いた果てに最後の 9 があるのではないかという素人の直観も、 まったくのデタラメというわけではなく、ちゃんと数学的な根拠はあります。 9 が無限に続いた果てに最後の 9 があるような数のことを非アルキメデス順序体と言います。 実数を拡張して無限大や無限小を扱えるようにした超実数がその代表例です。
このように、無限小数の無限の意味は実は二通りあります。 一つは、最後の 9 という概念が無い無限です。 この無限は完全な小数展開ができません。常に「...」が最後に残ります。 したがって、厳密には無限小数ではありません。 まあ、普通の文脈では無限小数と見なしてしまいますけどね。
もう一つは、9 は無限に続いているけれど最後の 9 という概念がある無限です。 前者は本当に無制限という意味で無限の中の無限とでも言えばよいでしょうか。 後者は無限だけれども制限があるという意味で無限の中の有限と言えます。 0.999... = 1 に納得がいかない人が後を絶たないのは、 こういう事情があるからなんでしょうね。
【無限級数】
無限小数の解釈として、 無限小数を素朴な意味での無限級数と考えている人をよく見かけます。 そして、0.999... と 9 を「無限個」並べれば 1 になるのだと主張します。 しかし、実数の体系内には無限は存在しないので、 無限級数という言葉を額面通りに受け取ると破綻した概念になります。 つまり、0.999... を \[ \frac{9}{10}+\frac{9}{10^2}+\frac{9}{10^3}+\cdots \] という等比級数と考えるとして、無限桁目って実数ですか?
要するに、多くの素人が混乱する原因になっているのは、 0.999... と 9 が無限に続くと言われた段階で、 必然的に実数ではない数を考えざるを得ない状況に追い込まれるからです。 9 が無限に続くということはアルキメデス性を破壊することになります。 0.999... ≠ 1 となっても不思議ではありません。
このあたりの事情をもっと詳しく知りたい人は、 神秘の無限和 を読んでみてください。
【零集合】
ここでは、私がたぶんこうだろうと考えているアイディアを説明します。 0.999... という表記を図形であると解釈し、その値を測度と考えることとします。
最後の 9 という概念が無い無限では、 そのままでは、0.999... を無限小数と考えることはできません。 つまり、\(\Sigma\) を使った和の形で表現することができないのです。 \(\Sigma\) を使った和は、終わりを明示しないといけませんが、 最後の 9 という概念が無い無限では、正に終わりを明示できません。
強引に表現すれば、0.999... = \(\Sigma\)表記 + \(\alpha\) という形になりますが、 どんなに \(\Sigma\)表記 の部分を延長しても、例えば無限和まで延長しても、 \(\alpha\) の部分を無くすことはできません。最後の 9 は無いのですから。 無限小数とは \(\Sigma\)表記 のことであると考えるなら、 \(\alpha\) の部分が残る限り、0.999... を無限小数で表現できたことにはなりません。
しかし、\(\alpha\) に目をつむれば無限小数と見なすことは可能です。 つまり、\(\alpha\) の測度は 0 であると見なせば無限小数と見なすことが可能です。 要するに、\(\alpha\) の部分を零集合と見なしてしまうということです。 零集合の部分は測度の観点からは無いのと同じなので、 実質として残るのは \(\Sigma\)表記 の部分のみとなり、 0.999... を無限小数で表現できたと考えることができます。
まとめると、最後の 9 という概念が無い無限による解釈では、 \(\mu(x)\) が測度を表すとき、\(\mu(0.999\ldots) = \mu(\Sigma表記+\alpha) = 1\) かつ \(\mu(\alpha) = 0\) というファンタジーを用いることで、 0.999... を無限小数と考えることができます。
ただし \(\alpha\) の部分は、\(\mu(\alpha) = 0\) を満たす限り、 必要に応じていくらでも大きくできるとします。
【デデキントの切断】
もう一つ、実数の場合に 0.999... が 1 になる根拠を紹介しましょう。 実数全体の集合 \(R\) を2つの集合 \(A, B\) に分割することを考えます。 このとき、任意の \(x, y\) に対して \(x\in A\land y\in B\Rightarrow x\lt y\) が成り立つとき、この分割をデデキントの切断と言います。 ご存じの方も多いでしょう。
実数に対してデデキントの切断を作ると、\(A\) に最大値があり \(B\) に最小値が無いか、\(B\) に最小値があり \(A\) に最大値が無いかのどちらかになると実数の公理で定められています。
もし、0.999... という数が 1 より小さい数として存在しているとすると、 0.999... より大きく 1 より小さい数は存在しませんから、 1 を境にしてデデキントの切断を作ると、 \(A\) に最大値(0.999...)があり、\(B\) に最小値(1)があるという状態になります。 これは実数の公理に反するので、0.999... という数を 1 とは異なる数として考えることはできないということになります。
この他、デデキントの切断は、 実数の位相構造を決定する重要な役割を果たしています。 つまり、実数の区間 \([a,b]\) を分割したとき、その切り口 \(c\) が \([a,c)\) と \([c,b]\) という端点の無い半開区間と端点のある閉区間になるというお馴染みの性質も、 デデキントの切断に関する公理から決まります。 つまり、開集合の補集合は閉集合であり、 閉集合の補集合は開集合であるということです。 何でもないようなデデキントの切断ですが、 位相構造を決めるということは、収束の意味を決めることでもあります。 0.999... が 1 に収束するという性質も、この位相構造から決まります。
【無限等比級数による証明】
\(0.999...=1\) の典型的な証明を紹介しておきましょう。 この方法は、厳密には正しい証明ではありませんが、 \(0.999...\) を無限等比級数と見なした上で、 極限の線形性を用いることで正当化することが可能です。
\[ \begin{eqnarray} x & = & 0.999\ldots\\ 10x & = & 9.999\ldots\\ 10x - x & = & 9.999\ldots - 0.999\ldots\\ 9x & = & 9\\ x & = & 1 \end{eqnarray} \]この証明には問題があります。 上記の証明には無限に続く数の掛け算や引き算が、 何のためらいもなく使われています。無限に続く数の四則演算が、 有限な数の四則演算と同じような結果になる保障など何処にもありません。 そもそも、無限に続く数の四則演算が可能なのかすら怪しいです。 では、上記の証明は全くのデタラメなのでしょうか? 実は、\(0.999...\) を以下のような等比級数の極限と解釈すれば正しい証明になります。
\[ S_n=\frac{9}{10}+\frac{9}{10^2}+\cdots+\frac{9}{10^n} \] \[ 0.999... = \lim_{n\to\infty}S_n \]\(0.999...\) を極限と解釈すると極限の線型性が使えるようになります。 つまり、\(a_n, b_n\) が収束する時、\(\alpha a_n + \beta b_n\) も収束して以下の等式が成り立ちます。
\[ \lim_{n\to\infty}(\alpha a_n + \beta b_n) = \alpha(\lim_{n\to\infty}a_n) + \beta(\lim_{n\to\infty}b_n) \]そして、\(S_n=1-\frac{1}{10^n}\) であることが証明できるので、 \(S_n\) は単調増加であり、任意の \(n\) に対して \(S_n\lt 1\) となります。 つまり、\(S_n\) は何らかの値に収束することになります。 よって、極限の線型性を使うことができ、 上記の \(0.999...=1\) の証明が正当化できて以下のようになります。
\[ \begin{eqnarray} x & = & \lim_{n\to\infty}\frac{9}{10} + \frac{9}{10^2} + \cdots + \frac{9}{10^n}\\ 10x & = & \lim_{n\to\infty}9 + \frac{9}{10} + \cdots + \frac{9}{10^{n-1}}\\ 10x - x & = & \lim_{n\to\infty}9 - \frac{9}{10^n}\\ 9x & = & 9\lim_{n\to\infty}1 - \frac{1}{10^n}\\ x & = & \lim_{n\to\infty}1 - \frac{1}{10^n}\\ x & = & 1 \end{eqnarray} \]無限等比級数による \(0.999...=1\) の証明は、 \(0.999...\) を等比級数の極限と解釈した上で、 イプシロン-デルタ論法により、 極限の線型性を証明しないと本当は十分ではないわけです。
ところで、上記の証明の正当化をよく見ると、最後の結果の一歩手前が \(\displaystyle x=\lim_{n\to\infty}1-\frac{1}{10^n}\) となっています。 そして実数では \(\displaystyle\lim_{n\to\infty}\frac{1}{10^n}=0\) なので最後の結果が \(x=1\) となっていることが分かります。 これに限らず、
\[ 1 = \lim_{n\to\infty}1-\frac{1}{2^n} = \lim_{n\to\infty}1+\frac{1}{n} = \lim_{n\to\infty}1-\frac{1}{n^2} = \cdots \]などなど、\(\lim\) の中に細かい構造があったとしても無視され、 まるで四捨五入でもするかの如く丸められて \(1\) になってしまいます。 この \(\lim\) の四捨五入のような性質のおかげで、 実数の世界に無限小が漏れ出してくるのが防がれています。 無限大の方は発散するという扱いで切り抜けます。
一方で、\(\lim\) の中の話を考えると、そこは特別な空間になっていて、 無限大や無限小を実数のように扱うことができます。 もちろん、最終的にはイプシロン-デルタ論法に翻訳して考えるのですが、 直観的に解釈すれば、 \(\displaystyle\left(1-\frac{1}{10^n}\right)_{n\to\infty}\) は \(1\) よりほんの少し(無限小)だけ小さいということになります。
【アルキメデス性による証明】
0.999... = 1 教と 0.999... ≠ 1 教の争いは、 いつ始まったのか分からないほど長きにわたりますが、 かつては、0.333... = 1/3 だから 0.333...×3 = 1 で 0.999... = 1 であるとか、 \(x = 0.999\ldots\) とすると \(10x - x = 9\) で \(9x = 9\) だから \(x = 1\) であるなどの証明が盛んに唱えらていました。今でも主流はコレでしょうね。 おっと、1 - 0.999... = 0.000... だから 1 = 0.999... を忘れてました。
しかし、 上記のような証明は数学者に言わせれば証明になっていない代物なのだそうで、 さすがに現在では、厳密な証明ではないので信用できないという評判が 0.999... ≠ 1 教の闘士の間にも共通認識として広まりつつあります。 つまり、いまだにこんなことを言っている 0.999... = 1 教の信者は、 もうまともに 0.999... ≠ 1 教の闘士に相手にしてもらえなくなりつつあります。
もちろん、0.999... = 1 教の闘士も手をこまねいて見ていたわけではなく。 ちゃんと証明になっている説明を普及させようとしているようです。 なかなかよくできた証明なので、ここで紹介しましょう。
まず、\(x = 0.999\ldots\) であるとして、 \(0.9 \lt x\)\(,~\)\(0.99 \lt x\)\(,~\)\(0.999 \lt x\)\(,~\)\(\ldots~\)\(,~\)\(x \le 1\) を満たす実数と定義します。この定義は誰しも問題なく受け入れられますよね。 ここでもし、\(x \lt 1\) と仮定するなら \(1 - x \gt 0\) のはずなので、 \(n\) が十分に大きな自然数なら \(1 - x \gt 1/10^n\) とすることができます。 この式を移項して変形すると、\(1 - 1/10^n \gt x\) になります。 \(1 - 1/10^n\) は \(0.999\ldots 9~(9~が~n~個)\) なので、 定義より、\(x\) より小さいはずです。つまり、\(x \gt 1 - 1/10^n \gt x\) であり、\(x \gt x\) となって矛盾します。 したがって \(x \lt 1\) という仮定が誤りであり、 背理法により、\(x \ge 1\) となります。一方、\(x \le 1\) であると定義したので、 これと合わせると \(x = 1\) となります。
なるほど、難しい考え方は一切用いず分かりやすく証明できていますね。 肝は、十分大きな \(n\) を取るところで、 ここで実数のアルキメデス性を用いています。
特筆すべきは、0.333...×3 = 0.999... だとか、 0.999...×10 = 9.999... だとか、9.999... - 0.999... = 9 だとか、 1 - 0.999... = 0.000... のような無限に続く数の計算が全く無いことです。 これまで論理的飛躍だと疑問視されていた問題点を見事に回避しています。 この方法で説得されたら、0.999... ≠ 1 教の信者も 0.999... = 1 教へ改宗しちゃうかもしれませんね。 それでもがんばる 0.999... ≠ 1 教の闘士のみなさんは、\(\lim\) の中では、 いくらでも大きくなる数や小さくなる数があるからアルキメデス性は破れている! と反論すれば、まだ自分を見失わずに戦えるかもしれませんよ。
【0.333... = 1/3 は正しい?】
0.999... = 1 の証明はいくつかありますが、 その中に、0.333... = 1/3 だから 0.333... × 3 = 1 で 0.999... = 1 というものがあります。これを信じている人も多いでしょう。 でも、この証明は 0.999... < 1 である可能性がある段階では単なるデタラメです。詐欺と言ってもいいでしょう。
よく考えてみてください。0.999... = 1 に納得のいかない人は、 0.9 < 1 だし 0.99 < 1 だし 0.999 < 1 だから、 9 が無限に続く 0.999... も 0.999... < 1 だと思っているのではないでしょうか? 同じことを 0.333... でもやってみてください。 0.3 < 1/3 だし 0.33 < 1/3 だし 0.333 < 1/3 だから、 3 が無限に続く 0.333... も 0.333... < 1/3 とならないと筋が通りません。0.333... < 1/3 なのですから、 それを 3 倍しても 0.333... × 3 < 1 であり、 0.999... < 1 という結論になります。
この詐欺のトリックは、1/3 は実際に筆算で計算してみた経験のある人が多いが、 0.999... が結果になる筆算をやった経験のある人は少ないことを悪用しています。 実は、1/1 を筆算で計算するとき、少しやり方を変えると 0.999... が導かれます。 筆算で納得できるのなら、そもそも 0.333... = 1/3 を使う必要はありません。
しかし、よく考えてみれば筆算は有限な計算なので、 筆算で言えることは 0.333...3 < 1/3 でしかありません。 皆さんも、必ず有限桁で計算をやめるでしょ? つまり、0.333... = 1/3 である保証は筆算では得られないのです。 ここは是非慎重に考えていただきたい。 筆算の結果が正しくなる保証があるのは割り切れるときのみです。 割り切れないとき無限に計算を続ければ正しい結果になるかどうかは、 筆算だけでは確認のしようがありません。 何故って、0.333... × 3 を筆算では計算できないからです。
え?筆算では計算できないけど、繰り上がりがないから 0.999... に決まってるって? まあ、それは認めても良いですけど、 それって、0.333... = 1/3 の証明にはなってないですよね。 だって、0.999... = 1 はまだ証明されてないのですから。 どうでしょう。何となく問題の構造が見えてきましたか?
結局、自分でやってみたことのあることは無批判に信じやすいということです。 しかし、0.333... = 1/3 を使った証明は数学とは言えません。トリックです。 0.333... = 1/3 が成り立つ根拠を十分に示さないままでは、 はじめから 0.999... = 1 であることを使って 0.999... = 1 を証明するようなものです。 皆さんもだまされないようにしましょうね。
ちなみに、0.333... を分数に直せば 0.333... = 1/3 を正しく証明できますが、その計算過程は、既に説明した 無限等比級数による証明 すなわち、0.999... = 1 の証明そのものです。これでは、 0.333... = 1/3 を用いて 0.999... = 1 を証明する意味がありませんよね。
もちろん、0.999... = 1 の通俗的な証明の全てがデタラメや詐欺というわけではありません。 無限等比級数の性質を使った証明は、 厳密さには問題があるとしても大筋において正しいものです。 循環小数を分数に直す方法としても用いられていますよね。 イプシロン-デルタ論法による収束の概念も、無理のない形で暗に織り込まれています。 0.999... × 10 = 9.999... がそれです。 0.999... = 1 に手っ取り早く納得したいなら、 無限等比級数を使った証明で納得しておくのが無難です。
【1 - 0.999... = 0.000... は正しい?】
もう一つ、ありがちな 1 = 0.999... の証明の問題点を指摘しておきましょう。 その証明はこんな感じです。 1 と 0.999... の差を計算すると 0.000... となって、 いつまでも 0 しか出てこないので、0.000... = 0 である。 よって、1 - 0.999... = 0 となり、移項すると 1 = 0.999... である。 しかしこの証明、こう反論されるとぐうの音も出ません。 0 が無限に続いた果てに 1 が出てくるのではないか。 確かに、0.999... の 9 は無限に続くと言っているのですから、 0 も無限に続かないと話が合いません。1 が出てくるとするならその後ですね。 0 しか出てこないように見えるのは、0 の数が無限だからかもしれません。
この証明は、 暗黙の裡に 1 が出てくるなら 1 の前には 0 は有限個しか続かないと仮定しています。 すると、0.999... の 9 も有限個だからおかしいというわけですね。 この仮定は実数では正しいのですが、 今考えている数が実数であることに言及しない人が非常に多いです。 実数のこのような性質をアルキメデスの性質と言います。 アルキメデスの性質を説明しないと、 1 の前に 0 が無限に続くのではと言う人を納得させるのは難しいでしょう。 アルキメデスの性質とは、実数では \[ \lim_{n\to\infty}\frac{1}{10^n} = 0 \] となるということです。しかし、それなら始めから \[ 0.999\ldots=\lim_{n\to\infty}1-\frac{1}{10^n} = 1 \] と説明する方が誤解が少ないのではないでしょうか。 どのみち、納得させようとして正確な話をすれば、 極限の話をしなければならないのですから。
そういう意味では、無限等比級数を使って証明する方法も同じ問題を抱えていますが、 0.999... を 10 倍すると 9.999... になることを認めないという人は、 相当重症の猛者でしょうね。
【神秘の無限和】
ここでは、 理系の人なら普段何気なく使っているであろう無限和について掘り下げてみます。
同値類で丸められた 0.999... の解釈はいったん忘れて、 0.999... という無限小数を次のような額面通りの無限和と解釈してみましょう。 \[ 0.999... = \sum_{n=1}^{\infty}\frac{9}{10^n} \] おそらく、この解釈が一番メジャーな解釈ですよね。より厳密には、 \(\mathbb{N}\) を 0 を含まない自然数全体の集合として以下のように解釈します。 \[ 0.999... = \sum_{n\in\mathbb{N}}\frac{9}{10^n} \] ところで、これをどう計算したらよいかご存じでしょうか? たぶん多くの人が、有限和を積み重ねていけば何れは無限和に到達するというようなちゃらんぽらんな理解をしているのではないでしょうか。 しかし、有限和の積み重ねで到達できるものは、どこまで行っても有限和です。 決して無限和になることはありません。
つまり無限和とは、どのように計算すればよいのか全く分からない謎の計算なのです。 それでも、何か神秘の力で無限和が計算できるのだとしましょう。 このとき、次の計算を考えてみてください。 \[ N = \sum_{n=1}^{\infty}1 = \sum_{n\in\mathbb{N}}1 \] 無理だろ!と言いたいのは分かります。しかし、無限和が実行可能とするなら、 これも計算できるはずです。 ところが、\(N\) はその作り方から最大の自然数になっています。これは矛盾です。 また、\(N\) は計算できたとするなら有限ではありません。 つまり、無限和は実数のアルキメデス性を破壊してしまいます。 要するに、無限和とは本来実数の体系内では定義できない計算なのです。 無限和をどのように計算すればよいのか分からなかったのは偶然ではないのです。 したがって、無限小数も本来実数の体系内では定義できません。あろうことか、 無限小数という概念の一番メジャーな解釈が実数としては破綻しています。 信じられないかもしれませんが、これが現実です。
にもかかわらず、多くの人が、 0.999... のことを神秘の無限和というイメージで理解しているのではないでしょうか? しかし、 無限小数は実数の体系内では定義できないのですから本来は実数ではありません。 繰り返しますが、 素朴な意味で、\(9/10^n\) を無限に足した結果としての実数など存在しません。 存在しないのですから、もちろん 0.999... = 1 でもありません。 それを無理やり理解しようとした初心者が、 無限小という量を考えてしまうのも当然なのです。
でも、実際に無限和を考えるじゃないか。そしてその結果は 0.999... = 1 だろうと言いたいですよね。はい、おっしゃる通りです。 そこで、いよいよ同値類の出番というわけです。 無限和を習ったとき、つまり無限級数を習ったとき、 何か別の面倒くさいものも一緒に習いませんでしたか? そう収束条件というやつを習いましたよね。これが肝なのです。 0.999... の本当の姿とは実は \[ 0.999... = \lim_{m\to\infty}\sum_{n=1}^{m}\frac{9}{10^n} \] のことなのです。数学では、この手の記号の省略をよくやります。 つまり、 \[ \sum_{n=1}^{\infty}\frac{9}{10^n} = \lim_{m\to\infty}\sum_{n=1}^{m}\frac{9}{10^n} \] という置き換えを暗黙の裡に行う必要があります。 しかし、記号の意味を額面通りに受け取るなら、両者は全く異なる計算ですよね。 \(\lim\) の付いている方は厳密には無限和ではありません。 いくらでも長い有限和を考えたときの収束先を割り当てる計算です。 イプシロン-デルタ式に考えないとダメですし、 最終的な結果には同値類を適用する必要もあります。そして、 同値類のおかげで収束条件を満たすときには値が実数になることが保証されます。 同値類を適用して収束させないと、 イプシロン-デルタの世界においてもアルキメデス性は破れたままです。 「無限和」という概念は、 収束という概念があってはじめて実数の体系内で定義可能になるファンタジーなのです。
つまり、無限小数という概念は額面通りに理解してはダメで、 同値類を含めたイプシロン-デルタ式に理解する必要があるのです。 この事実を知っているなら、 0.999...9 と途中で止めると 1 より小さいが、0.999... と無限に並べれば 1 になるのだという説明がずいぶんと乱暴な説明不足であることが理解できるはずです。 でも、その乱暴な説明をする人が多いというのが現実です。 たぶん、多くの人が無限和を神秘の計算と思っているのではないでしょうか。
さて、イプシロン-デルタ論法で、 上記の \(N\) のような計算を考えたらどうなるのでしょうか。 イプシロン-デルタ論法では、\(N\) のような数をいくらでも大きくなる数と考えます。 特定の自然数に固定されていないので、最大の自然数になる矛盾は回避されます。 そして、そのような計算は発散するとして、実数の世界から取り除きます。 0 よりは大きいがいくらでも小さくなる数は、 先に説明した収束という概念で、実数の世界から取り除きます。
つまり、イプシロン-デルタ論法は、 いくらでも大きくなる数や小さくなる数を \(\lim\) の中に閉じ込めて、 実数の世界をある有限な大きさの世界に収まるようにするのです。 計算のリソースに限りがある世界の中に収まるようにすると言えばよいでしょうか。 イメージとしてはコンピュータの CPU のビット数のような感じです。 コンピュータで表現できる数の範囲はある有限の大きさです。 その範囲の中で計算する限りは結果の正しさが保証されます。 イプシロン-デルタ論法は、リソースの限界そのものを理想化して、 CPU のビット数を任意に大きく設定できると考えた場合の世界と言えるでしょう。 それでもリソース限界に収まりきらないものは \(\lim\) の中に閉じ込めるのです。
【補足】
額面通りの無限和で、\(N\) が計算できると矛盾が生じることから、 \(N\) を求める計算は未定義であるということにすれば、 額面通りの無限和が矛盾なく定義できるのではと思った人も居るでしょう。 ちょうど 0 による除算が定義できないという風に。
しかし、\(N\) を求める計算は無限和には必須の計算であり、 未定義とするわけにはいきません。何故って、 1 を無限に足した結果が無限にならないとしたら、 何を根拠としてその計算を無限和と呼んでいるのでしょうか? 仮に、1 を無限に足した結果が有限だとしたら、それこそ矛盾ですから、 それは無限和ではありません。よって、無限和であることを確認するには、 \(N\) が計算できる必要があります。
また、\(N\) は、 無限和を使った計算の結果を表現するための単位としての役割を果たします。 \(\infty\) は漠然とした記号に過ぎませんが、 \(N\) は細かい計算にも使える具体的な値です。つまり、無限和が計算できるとは、 \(N\) を使って計算結果が表現できるという意味なのです。 例えば、 \[ 1+2+3+\cdots = \frac{N(N+1)}{2} \] のように表現できます。
したがって、\(N\) を求める計算を未定義とするなら、 無限和自体も未定義とするほかありません。
【驚愕の ...999 = -1】
0.999... = 1 は有名ですよね。ところで、0.999... = 1 と同じ論法を使うと ...999 = -1 が証明できることはご存知でしょうか?例えば、以下のようになります。
\[ \begin{eqnarray} x & = & \cdots999\\ 10x & = & \cdots990\\ 10x - x & = & \cdots990 - \cdots999\\ 9x & = & -9\\ x & = & -1 \end{eqnarray} \]この証明は、無限に続く数の四則演算の意味を厳密には考えていません。 また、実数の極限で考えれば、...999 は無限大に発散するはずです。 ところが、ある解釈の下では、...999 = -1 を導くことができるのです。 ちょっとやってみましょう。
実数を拡張して無限大や無限小を扱えるようにした数体に超実数があります。 この超実数を扱う分野を超準解析と言います。 まず、超実数で、0.999... の解釈を考えます。実は色々な解釈が考えられ、 解釈によっては、0.999... < 1 だったり 0.999... = 1 だったりします。 これらの解釈のうち、無限大超自然数 \(H\) 桁目で 9 が打ち止めとなる解釈、 つまり、9 は無限に続いてはいるけれど、 限りなく続いているわけではない解釈を採用すると、0.999... < 1 となります。 9 が打ち止めになるので、これは、1 以下の数で 1 に最も近い数ではありません。 なので、上記 0.999... = 1 の証明とも矛盾しません。
\[ 0.999\ldots = 1 - \frac{1}{10^H} = \frac{9}{10}+\frac{9}{10^2}+\cdots+\frac{9}{10^{H-1}}+\frac{9}{10^H}\lt 1 \]念のために言っておきますが、\(H\) は無限大超自然数です。 ですから、これは有限桁の \(H\) で打ち止めになっているのではなく、 無限桁の \(H\) で打ち止めになっています。ややこしいですね。 このように、有限の実数の式で成り立つ関係が、 無限大超実数でも成り立つことを移行原理と言います。
さて、ここからの話は、超準解析に大して詳しくもない筆者の独自解釈です。 正式な超準解析の説明になっていませんのでご注意ください。
上記のように解釈すると、 0.999... が2つの部分 \(a, b\) に分解できることが分かります。
\[ a = \frac{9}{10}+\frac{9}{10^2}+\cdots \] \[ b = \cdots+\frac{9}{10^{H-1}}+\frac{9}{10^H} \]\(a\) は普通の実数の部分、\(b\) が無限小の部分です。 \(a\) は実数で考えた時の 0.999... ですから、1 になると考えられます。 ですから、b は以下の関係を満たすはずです。
\[ b = \cdots+\frac{9}{10^{H-1}}+\frac{9}{10^H} = -\frac{1}{10^H} \]ここで、\(b\) を \(10^H\) 倍してやると、
\[ 10^H b = \cdots+900+90+9 = \cdots 999 = -1 \]このように、...999 = -1 が導かれます。しかしながら、正式な超準解析では、 \(a\) や \(b\) は数としては認められていないそうです。 \(a\) や \(b\) は超準解析の意味では極限になりません。 極限の半分という感じです。
ちなみに、以下の等比級数の無限和の公式
\[ 1 + r + r^2 + r^3 +\cdots = \frac{1}{1 - r} \]は、\(|r|\lt 1\) の時のみ正しいとされていますが、 上記の解釈を踏まえて考えると、
\[ \cdots 999 = 9\times(1 + 10 + 10^2 + 10^3 +\cdots) = 9\frac{1}{1 - 10} = -1 \]となり、\(|r|\ge 1\) の場合にも成り立つと解釈できます。
さらに、...999.999... = 0 であることを証明しておきましょう。 例によって、無限に続く数の四則演算の意味を厳密には考えません。 以下のようになります。
\[ \begin{eqnarray} x & = & \cdots999.999\cdots\\ 10x & = & \cdots999.999\cdots\\ 10x - x & = & 0\\ 9x & = & 0\\ x & = & 0 \end{eqnarray} \]0.999... = 1 で、...999 = -1 なのですから、 それらの和である ...999.999... が 0 というのは辻褄が合っています。 デタラメにしてはよくできているでしょ? この解釈を使うと、\(H\) を無限大超自然数とする時、 以下の関係が成り立つと解釈できます。
\[ \frac{9}{10}+\frac{9}{10^2}+\cdots +\frac{9}{10^{H-1}}+\frac{9}{10^H}+\frac{9}{10^{H+1}}+\cdots = 1 \]つまり、無限小のレベルでも 0.999... の 9 が限りなく続く場合、 すなわち、無限の先の \(H\) 桁でも 9 が打ち止めにならず、限りなく続く場合は、 0.999... = 1 と解釈できるということです。 こちらの結果だけは、正式な超準解析でも認められているようです。
【超準解析】
ここでは、0.999... = 1 の秘密を超準解析の視点から分析してみます。 まず、次のような有限和に関する公式を確認しましょう。 9 を \(m\) 個並べるとします。 \[ 0.999\ldots 9 = \sum_{n=1}^{m}\frac{9}{10^n} = 1 - \frac{1}{10^m}\tag{公式-1} \] これは、帰納法を用いれば証明できます。 大事なことは、これは単なる有限和に関する公式なので、 イプシロン-デルタ論法の同値類による丸めの処理は含まれない生の結果だということです。
一方、帰納法で証明できる事実は、 自然数の標準モデルのみならず超準モデルでも成り立ちます。 つまり、\(m\) は無限大でも成り立ちます。超準解析の視点から見れば、 移行原理で有限の(公式-1)が無限の世界にまで拡張されるわけです。 (公式-1)は、自然数の標準モデルの世界で証明されたにもかかわらず、 帰納法の力により超準モデルの世界をも貫く普遍的な事実に昇格されるのです。
\(m\) は無限大でも良かったので、 \(m\) に任意の無限大超自然数 \(H\) を代入すると、 0. の後に 9 を \(H\) 個並べた数が \(1 - 1/10^H\) と表されます。 \(1/10^H\) は無限小になりますので、それを \(\varepsilon\) で表せば、 \(0.999\ldots = 1 - \varepsilon\) になります。 つまり、0.999... は 1 よりほんの少しだけ小さいということになります。
これは、(公式-1)が同値類による丸めを含まない生の結果だからです。 イプシロン-デルタ論法における \(\lim\) の中の世界は、 ちょうどこの超準解析の世界と等価と見ることができます。 つまり、イプシロン-デルタの世界では直接的には無限小という量は扱いませんが、 実際には、微分を定義したりするときの \(\varDelta x\) のように間接的に無限小と見なせる数を考えます。 このような数に根拠を与えているのが超準解析であるということが言えます。
イプシロン-デルタ論法と超準解析の同値性には、 例えば次のような極限の同値性があります。 それは、実数 \(a\) に対して、任意の無限大超自然数 \(H\) おいて数列 \(a_n\) が \(a_H = a + \varepsilon\) を満たすように無限小 \(\varepsilon\) を取れるなら、 \(\displaystyle\lim_{n\to\infty}a_n = a\) であるというものです。
この同値性と(公式-1)を使えば、 実数の世界では 0.999... = 1 であることを以下のように示せます。 \(a_n=1-1/10^n\) のとき、 任意の無限大超自然数 \(H\) に対して \(a_H = 1 - 1/10^H\) が成り立ち、\(\varepsilon\) を無限小とするなら、 \(a_H = 1 - \varepsilon\) と表されますから、 \[ 0.999\ldots = \lim_{n\to\infty}a_n = 1 \] となります。つまり、\(\lim\) で丸めれば 0.999... = 1 という結果になります。
整理すると、イプシロン-デルタの世界と超準解析の世界の間には以下の関係が成り立ちます。 \[ \lim_{n\to\infty}a_n = a ~\Longleftrightarrow~ a_H = a + \varepsilon \] これを 0.999... に対して見てみると、 \[ \lim_{n\to\infty}a_n = 1 ~\Longleftrightarrow~ a_H = 1 - \varepsilon \] のように表されることとなります。 すなわち、0.999... = 1 も 0.999... ≠ 1 も同じことを違う視点で見ているだけなのですね。 今まで、0.999... = 1 以外にあり得ないと思っていた人は、 \(\lim\) の中の世界をうまく説明できなかったはずです。実際には、 \(\lim\) の中の世界は超準解析によって合理化されると理解すれば、 見て見ぬふりをしてきた心のモヤモヤから解放されますよ。
【極限の誤解と 0.999...】
実数の極限を誤解している人に極限のことを説明するのに、 数列 \(\{a_n\}\) の極限値のことを、 たどり着いた値ではなく目指す先の値であると説明しているのをよく見かけます。 例えば、0.999... は 0.9, 0.99, 0.999, ... の極限であり目指す先は 1 であると。 私も、そのように考えていたのですが、 最近になって、この説明では確かに分かり難いかもと思うようになりました。
目指す先と言うからには、 何事もなく順調に進めば何れは極限値に到達すると感じます。 もし、順調に進んでも到達できないのであれば、 何を根拠として目指す先と言っているのかという疑問がわきます。 常識的に考えれば、 到達できる可能性がわずかでもあるからこそ目指す先と言えるのであって、 決して到達できないことが分かっている場合、 その方法は「目指す先」を目指しているとは言えないでしょう。 たどり着かない方法を目指す方法というのは、よく考えると不自然です。 その「目指す先」は本当に目指す先でしょうか? 日常的文脈なら、 決してたどり着かないけれど気持ちとしては目指しているというのもありでしょうが、 数学の文脈で、気持ちとしては目指しているでは根拠にならないでしょう。 それに、目指す先が無理数だった場合、無理数の存在をどう保証するのか? ということにもなりますよね?
そもそも、0.999... と 1 が等しくないと思う人にとっては、 目指す先とは 1 ではなく 0.999... そのものでしょう。 そして、単調増加で上に有界な数列の場合、 まさしく、順調に進んでも決して極限値にはたどり着きません。 例えるなら、山のあなたになお遠く幸い住むと人の言う。と言ったところでしょうか。 数学に詳しくない人が聞いたら、 極限値とは何やら妖しげな桃源郷のようなものかと思われるかもしれません。
つまり、物理的に考えれば、 0.999... と 9 が無限に続いた数すなわち無限小数などというものは本来は存在せず、 到達できない数であるにもかかわらず、 あたかも 9 を並べ終えたかのように目標地点に設定しているところに、 そもそもの無理があるのでしょう。 0.999... = 1 という式は 「存在しない数」 = 1 ということになり、 問自体がナンセンスなのです。正に桃源郷です。 そのため、極限値はたどり着いた値ではなく目指す先の値ということにしてお茶を濁しているのでしょう。 1 の場合は有理数なので、目指す先の値ということにしておけば何とか誤魔化せます。 無理数の場合、目指す先が無限小数にならざるを得ず、桃源郷を探す羽目になります。
また、より巧妙な言い方に極限値とは近づく先のことだというものがあります。 距離を定義したところに工夫が見られます。 要するに、典型的なケースでは極限値に到達することをあきらめるのですね。 しかし、最終的に1つの値に到達しないのだとすると、 近づく先が複数あるんじゃないの?とか、 近づく先が固定されてないのでは?とか、 近づく先とはそのコーシー列自身しかないのでは?という疑問がわきます。 これは、有理数列の極限値で無理数を定義するときに困ったことになります。つまり、 近づく先ではあっても無理数の一意性が保証された目指す先ではないのかもしれない。 0.999... = 1 のような議論をするには近づく先だけでは不十分ですね。
実際には、 実数の極限値とはコーシー列を限りなく近いという関係を使って同値類に分類したとき、 \(\{a_n\}\) を代表元とする1つの類のことであって、 厳密に言えば目指す先や近づく先のことではありません。というか、 この同値類が定義できてはじめて「目指す先」と見なすことが可能になります。 何を根拠として目指す先と言っているのか答えられるようになるということです。 ひょっとしたら、多少遠回りでもコーシー列や同値類という考え方を説明する方が、 どうしても 0.999... = 1 に納得できないという人には有効かもしれません。
例えば、こんな説明が可能でしょう。 表現 0.999... とは長さを自由に設定できる有理数列 x = (0.9, 0.99, 0.999, ...) のことであり、 表現 1 とは x と同じ長さの有理数列 y = (1, 1, 1, ...) のことである。 2つの数列の長さを好きなだけ長く取るとき、x と y の右端の数の大きさを互いにいくらでも近づけられる場合は同類という関係で分類すれば、 x と y は同じ同値類に属しているというのが、 実数における 0.999... = 1 の大まかな意味なわけです。 このとき、x と y の属する同値類を実数の 1 と定義し、 0.9, 0.99, 0.999, ... の目指す先はその同値類と定義します。 そう、「目指す先」の意味を新たに定義し直し、 無限小数に有限的な解釈を与えるわけです。 厳密には、同値類を導く同値関係がきちんと成立するか確かめる必要はありますが、 それをクリアすれば、目指す先の一意性も保証できます。 でも、まあ、これでもきっと分からないと言われそうだな。
ちなみに、これら同値類を実数として使うためには、 さらに同値類間に整合的な四則演算が定義できるか確かめる必要もあります。
ところで、上記の「目指す先」の定義が何故妥当なのかというと、 以下のように考えられるからです。 数列の長さを好きなだけ長く取れるとは、 事実上その長さを無限大と見ることに等しく、 x と y の右端の数の大きさを互いにいくらでも近づけられるとは、 2つの数の距離が無限小と見ることに等しい。 このとき、同じ同値類に属するとは、 無限小の誤差は無視して同じと見なすことなので、 0.9, 0.99, 0.999, ... は無限の先で極限値 1 に到達したと見なせます。 つまり、この解釈を使えば、 0.9, 0.99, 0.999, ... は 1 に決してたどり着かない数列ではなくなるのです。 もちろん、ここで言う無限大や無限小はあくまで仮想的な例え話です。 いわゆる実無限が存在するわけではありません。
超準解析における極限の説明は、この点においても優れています。 超準解析には無限が存在するので、 \(H\) を任意の無限大超自然数、\(a\) を極限値の実数、 \(\varepsilon\) を無限小とするなら、 \(a_H = a + \varepsilon\) となるとき、 数列 \(\{a_n\}\) は \(a\) に収束すると考えます。 そう、超準解析では極限を誤差を含んだたどり着いた値と考えるわけですね。 これは、素人が 0.999... = 1 に抱く疑念、 つまり、0.999... は 1 に限りなく近いが 1 ではないのではないか、 という直観そのものであるところが興味深いですね。 ただし、無理数の存在は初めから認めてしまわないといけません。 まあ、超実数は実数の拡張なので当然と言えば当然ですが。
最後に、同じ極限でも、実数より細かい構造を見ることができる集合の極限で 0.999... を考えるとどうなるかを紹介しておきましょう。 0 以上の実数 \(x\) に対して \([0,x]\) という閉区間が対応しているとします。 このとき、次のような実数の閉区間 \(A_n\) を考えます。
\[ A_n = [0,1-\frac{1}{10^n}] \]つまり、
\[ A_0 = [0,0],~A_1=[0,0.9],~A_2=[0,0.99],~A_3=[0,0.999],~\ldots \]となります。各 \(A_n\) は \(0\) から \(\displaystyle 1-\frac{1}{10^n}\) に至るパスになっていて、それぞれ実数 \(\displaystyle 1-\frac{1}{10^n}\) と対応しています。 つまり、\(0.99\leftrightarrow A_2\) であり、 \(0.999\leftrightarrow A_3\) であり、 \(0.999...\leftrightarrow A_{\infty}\) であるということです。 このとき、\(A_0\subset A_1\subset A_2\subset \ldots\) なので極限集合が存在して
\[ A_{\infty}=\lim_{n\to\infty} A_n = \bigcup_{n\in\mathbb{N}}A_n = [0,1) \]のようになり、何と \([0,1]\) にはなりません。半開区間の \([0,1)\) になります。
要するに、実数より精度の高い実数の区間で 0.999... を考えると、 1 に対応する \([0,1]\) は目指していた先ではなかったということです。 目指していた先は半開区間の \([0,1)\) であり、 0.999... の極限値とされる 1 にはギリギリ届きません。 まあ、どちらの区間も実数の精度で見ると長さ 1 の区間ではあるんですけどね。 ただし、 集合の極限を目指す先の値と解釈するのが妥当かどうかは私には分かりません。
このような状況も、素人が 0.999... は 1 よりわずかに小さいのではないか? と考えてしまう原因になっているのでしょうね。