これは「1=0.999…」という記事の下書きです.

1=0.999…

前提

ここでは以下の5つの前提から出発して議論します。

  • (前提 A) 0.999… という無限小数で表される実数が存在する。
  • (前提 B) 0.999… は、1 以下である。
  • (前提 C) 0.999… は、 0.9 より大きく、 0.99 よりも大きく、 0.999 よりも大きい。 一般に、 1 - 10 - n = 0.999…9 (9がn個)よりも大きい。
  • (前提 D) 実数の加減乗除が定義されている。
  • (前提 E) 任意の正の数 x に対して、 ある正整数 n が存在して、 n x > 1 が成り立つ*1

以上の前提についてひとつずつ確認します。

前提 A. 0.999… が存在する

1 = 0.999… を証明したいところですが、右辺の数が存在しないとそもそも意味がないので、存在すると仮定します。

前提 B. 0.999…1

これはなんとなく正しそうなので特に言うことはありません。

前提 C. 0.999…9<0.999…

無限小数 0.999… で表される数は、 有限小数 0.999…9 で表される数よりも大きいということです。 これもなんとなく正しそうなので特に言うことはありません。

前提 D. 加減乗除ができる

(ここに和、差、積、商、順序の定義を書く)

前提 E. アルキメデスの性質

どんなに小さい数であっても、それが正の数であれば、何倍かすると 1 より大きくなるということを意味します。 0.01 は、101 倍すれば 1 より大きくなります。 同じようなことがどんな小さい(正の)数に対しても成り立つと仮定します。

1 = 0.999… 」 の証明

x = 1 - 0.999… という数を考えます。 前提 A と前提 D より、こういう数は存在します。 また、前提 B と前提 D より、x0 以上です。 x がどのくらい小さいかを考えてみます。

前提 C より、 0.999… > 0.9 です。 これと前提 D を合わせると、 x = 1 - 0.999… < 1 - 0.9 = 0.1 が成り立ちます。 両辺を 10 倍すると 10 x < 1 が分かります。

さらに、 0.999… > 0.99 でもあるので、 x = 1 - 0.999… < 1 - 0.99 = 0.01 も成り立ちます。 両辺を 100 倍すると 100 x < 1 が分かります。

さらに、 0.999… > 0.999 でもあるので、 x = 1 - 0.999… < 1 - 0.999 = 0.001 も成り立ちます。 両辺を 1000 倍すると 1000 x < 1 が分かります。

一般化します。 n を任意の正整数とします。 このとき、前提 C より 0.999… > 1 - 10 - n = 0.999…9 なので、これと前提 D を合わせて x = 1 - 0.999… < 1 - ( 1 - 10 - n ) = 10 - n を得ます。 両辺を 10n 倍すると 10 n x < 1 です。 ここで、ちょっと工夫して n x 1 を比べてみます。 n 10 n より小さいので、次の不等式が成立します。 n x 10 n x < 1 つまり、 x は何倍しても 1 より小さいままということです。

さて、もともと x0 以上ということは分かっていました。 つまり、 x = 0 か、 x > 0 か、どちらかです。 しかし、前提 E があるので x > 0 はありえません。 よって、 x = 0 です。 x = 1 - 0.999… だったので、 1 = 0.999… ということが分かりました。

対策

二重数に順序を入れる方法(うまくいかない)

上の証明では実数のアルキメデス性が大きな役割を果たしていました。 しかし、よく考えてみるとこれはずるいです。 アルキメデス性を仮定することは、「実数の世界には無限小は存在しません」と宣言するのにほぼ等しいからです。 無限小というものは、何倍しても 1 より小さい数であるはずです。

以上のことを踏まえると、アルキメデスの性質が成り立たない数の体系を考えれば、 1 0.999… が成り立つのではないか?という疑問が自然に浮かびます。 しかし、そうとは限りません。 無限小が存在する体系でも、 1 = 0.999… になってしまうことがあります。 その例を以下に紹介します。

多項式環 R [ ε ] ε 2 で割った環 D = R [ ε ] / ε 2 を二重数といいます。 二重数の順序を a + b ε < c + d ε a < c or ( a = c and b < d ) で定義します*2。 二重数の世界では、 任意の正数 x > 0 に対して x > ε が成り立ち、 ε が「一次の無限小」のように振るまいます。 二重数にこのような順序を導入すると、アルキメデスの性質は成り立ちません。

それでは二重数の世界で 1 = 0.999… は成り立つでしょうか? 残念ながら成り立ちます。 これを示すためには、 R D の部分環になっていることと、 R が体をなすこと、そして R が二重数の順序の定める位相のもとで完備になっていることを確認すればよいです。 あとは上の証明と同じやり方によって 1 = 0.999… が証明できます。

この例から分かるのは、実数に後付けで無限小を加えてもうまくいくとは限らないということです。 1 = 0.999… を崩すためには、極限の構造をもっと動かす必要があります。

超指数的に収束する列を用いる方法

コーシー列による実数の構成法を復習します。 実数環 R とは、 コーシー列全体がなす環 C Q N をイデアル I = { ( a n ) n = 0 : ε > 0 ; N N ; n > N ; | a n | < ε } で割った環 C / I のことでした。 ということで、もっと小さいイデアルで割れば 1 0.999… にならないか?という疑問が自然に浮かびます。

そこで、 C の部分集合 J J = { ( a n ) n = 0 : ε > 0 ; N N ; n > N ; | a n | < ε n } で定義します。 これはイデアルとなるので、商環 R ' = C / J が定義できます。 1'0.9'9'9'… 1' = ( 1 , 1 , 1 , ) + J 0.9'9'9'… = ( 0 , 0.9 , 0.99 , 0.999 , ) + J で定義すると、 ( 1 , 0.1 , 0.01 , 0.001 , ) J つまり 1' 0.9'9'9'… が成立します。

指数関数を超える速度で0に収束する列のみが J に属します。 それ以外の、高々指数関数程度の速度で0に収束する列は、 R ' において無限小のようにふるまいます。

p進数を用いる方法

脚注

*1: 実際にはもっと強い条件が成立します。 つまり、任意の正の数 y に対して、 ある正整数 n が存在して n x > y が成り立ちます。 この記事ではそこまで強い条件は使わないので省略しました。
*2: これは本稿独自の定義です。二重数の順序を議論している文献をご存知の方は教えてください。