★ Mathlogでは、本記事に関連する記事として
がありますので、そちらもぜひご覧ください。
いきなりですが $0.999...=1$ です。
仮に$0.999...<1$だとすると、実数の性質から必ずその間に実数が無限に存在します。よって$0.999...<1-\epsilon<1$を満たす正の実数$\epsilon$が必ず存在します。しかし、小数点以下の$9$を十分繰り返せば、$0.999...$は必ず$1-\epsilon$を超えます。これは矛盾なので、$0.999...=1$しかありえません。
しかし誰も(?)が思います。
$0.999...$は1じゃねえ!
と。
どんなに$9$が続いたところで、永遠に$1$にはならないのだから。
$0.999...<1$ではダメな理由は、そうだとすると、これら2つの数の間に必ず実数が存在するからです。
ならば、$0.999...<1$であり、かつ$0.999...$と$1$の間に実数が存在しない数体系を作りましょう
上記の数体系は「超実数(超実数)」と呼ばれます。超実数には無限小がれっきとした数として存在します。これを$\epsilon$として
$$
0.999...=1-\epsilon
$$
とすれば、$0.999...<1$であり、かつ$0.999...$と$1$の間に実数は存在しません
以下超実数を構成します。
本記事は主にRef.[1]を元に書かれています。英語ではありますが、大変丁寧に平易に超実数・超準解析を説明しており読みやすいです。日本語の教科書ではRef.[2][3]を参照しました。
まずは感覚を掴むため、構成の概要を説明します。要点は「数列そのものを数とみなす」ことです。そのために、数列に順序をつけます。
まず実数と数列との対応をつけます。これは簡単で、ある実数$r$に対応する数列は、要素がぜんぶ$r$の数列だとします。すなわち
$r\in{\mathbb R}$を$\langle r,r,r,\ldots\rangle$と同一視する
とします。
たとえば
$$
\begin{aligned}
1&\leftrightarrow \langle 1,1,1,\ldots\rangle,\\
\sqrt{2}&\leftrightarrow \langle \sqrt{2},\sqrt{2},\sqrt{2},\ldots\rangle
\end{aligned}
$$
てな感じです。
では
$$
\langle 0,1,1,1,\ldots\rangle
$$
はどの実数に対応するでしょうか。これはほぼ$1$なんだから$1$としたいです。同様に、有限個だけ違ってあとすべてが同じ数列は、同じだとみなすのが筋ではないでしょうか。
ということで、直感的には
「2つの数列が「同じ」になるのは、両者の要素の"多く"が同じとき」
と定義すれば良い気がします。
言い換えて
「2つの数列$\langle r_k\rangle=\langle r_1,r_2,\ldots\rangle$と$\langle s_k\rangle=\langle s_1,s_2,\ldots\rangle$が「同じ」とは、$r_k=s_k$を満たす$k$が"多い"とき」
とします。
2つの数列の大きい・小さいも同じように定義しましょう。つまり
「$\langle r_k\rangle$が$\langle s_k\rangle$より「大きい」とは、$r_k>s_k$を満たす$k$が"多い"とき」
とします。
そして、"多い"の基準を「超フィルター」という概念で定義します。
上のいいかげんな言い方だと「$\langle r_k\rangle=\langle s_k\rangle,\langle r_k\rangle>\langle s_k\rangle,\langle r_k\rangle<\langle s_k\rangle$が排他的かつどれかひとつは必ず成り立つ」という実数と同じ性質を持つかは不明ですが、超フィルターの概念で順序を定義すれば、それが満たされます。
さらに超フィルターによる同値類を作り、代表元をとってきます。こうして、数列の集合は和・積・逆元をもつ順序体となります。これを${}^*{\mathbb R}$で表し、超実数と呼びます。
ところで、次の数列はどの実数に対応するでしょうか:
$$
\langle 1,1/2,1/3,1/4,\ldots\rangle
$$
十分先の要素はどんな実数よりも小さくなり、その先無限に要素が存在します。つまりどんな正の実数よりも"小さい"と言えそうです。しかし明らかにどの要素も$0$より大きいです。よってこれはどんな実数とも等しくはありません。このように、${}^*{\mathbb R}$には、実数ではない独特の元が存在します。上の例は「無限小」と呼ぶべきものであり、実際そう呼ばれます。
前置きはここまでにして、超実数を構成していきましょう。
まずは数列の和と積を定義します。
といっても、これは単純です。数列の和と積を、その要素同士の和と積で定義します。つまり
$$
r=\langle r_n\rangle, s=\langle s_n\rangle
$$
としたとき、和と積を
$$
\begin{aligned}
r\oplus s&=\langle r_n+s_n\rangle, \ \ \ n\in{\mathbb N}\\
r\odot s&=\langle r_n\cdot s_n\rangle, \ \ \ n\in{\mathbb N}
\end{aligned}
$$
で定義します。このとき$\langle {\mathbb R}^{\mathbb N},\oplus,\odot\rangle$は可換環を成します。$\mathbb R^{\mathbb N}$は実数を値にもつ数列のことを指します。ここで$0$は$\langle 0,0,\ldots\rangle$、単位元$1$は$\langle 1,1,\ldots\rangle$です。和の逆元は数列の全ての元にマイナスをつけたものです。
ただしこのままでは体ではないです。たとえば
$$
\langle 1,0,1,0,1,\ldots\rangle \odot \langle0,1,0,1,0,\ldots\rangle=0
$$
ですが、左辺のどちらも${\mathbb R}^{\mathbb N}$の零元$\langle 0,0,0,\ldots\rangle$ではないのに、積は零になります。これでは零元ではない元が積の逆元を持たないことになってしまいます。さらに言えば、どこか1つでも数列に0があれば逆元を持ちません。
またこの環には順序も定義されていません。
そこで超フィルターを導入します。
自然数の部分集合の集合(自然数の冪集合)に、後に述べる条件をつけたものを${\mathscr F}$で表し、これを超フィルターと呼ぶことにします。
これを用いて
と定義します。
同様に
と定義します。
つまりは超フィルターとは、前に述べた"多い"に該当する「インデックスの集合」のリストです。
以下$\mathscr F$を特徴づけていくことにします。
フィルターは様々な集合の上に構成できますが、ここでは$\mathbb N$上のフィルターを考えます。
フィルターにより数列に同値関係を与えます。よってその元が同値関係を満たすように定義しなくてはなりません。よって以下の条件を課します:
(i) $\langle r_1,r_2,\ldots\rangle \sim\langle r_1,r_2,\ldots\rangle$
(ii) $\langle r_1,r_2,\ldots\rangle \sim\langle s_1,s_2,\ldots\rangle \to \langle s_1,s_2,\ldots\rangle \sim\langle r_1,r_2,\ldots\rangle$
(iii) $\{\langle r_1,r_2,\ldots\rangle \sim\langle s_1,s_2,\ldots\rangle$かつ$\langle s_1,s_2,\ldots\rangle \sim\langle t_1,t_2,\ldots\rangle\}\to \langle r_1,r_2,\ldots\rangle\sim\langle t_1,t_2,\ldots\rangle$
これらの条件に対応する集合論的関係は以下です:
properな$\mathbb N$上のフィルター$\mathscr F$は、以下の3条件を満たす:
(A) $\ \ {\mathbb N}\in {\mathscr F}, \ \emptyset\notin {\mathscr F}$
(B) $\ \ A,B\in{\mathscr F}\text{ならば}A\cap B\in {\mathscr F}$
(C) $\ \ A\in{\mathscr F}$かつ$A\subseteq B\subseteq{\mathbb N}$ならば$B\in{\mathscr F}$
$\emptyset$を含まないフィルターはproperなフィルターと呼ばれます。
さらに超フィルターの条件を課します。フィルターが次の条件を満たす時、超フィルターと呼ばれます:
$\mathbb N$上のフィルター$\mathscr F$が以下の条件を満たすとき超フィルターと呼ばれる:
(D) 任意の$A\subseteq {\mathbb N}$に対し、$A\in {\mathscr F}$または$A^c\in{\mathscr F}$がなりたつ。ただし$A^c={\mathbb N}-A$である。
これはすなわち、$A$かその($\mathbb N$に対する)補集合のどちらかは"多い"ことを保証します。
これで超フィルターが定義されました。(D)と(A)(B)の条件から、$A\in{\mathscr F}$と$A^c\in{\mathscr F}$はどちらか一方のみが必ず成立します。
超フィルターを導入したので、次に、${\mathbb R}^{\mathbb N}$(つまり実数の数列)に関する同値$\equiv$を定義します:
$$
\langle r_n\rangle\equiv\langle s_n\rangle
\leftrightarrow
\{n\in{\mathbb N}|r_n=s_n\}\in {\mathscr F}
$$
上に述べたように、${\mathscr F}$は"多い"の基準となる「「数列のインデックスの集合」の集合」であり、等しい要素のインデックスの集合が${\mathscr F}$の要素なら、2つの数列の"多く"の要素が同じであり、2つの数列は等しい、ということになります。
論理学的記号を導入し、表記の整理をします。
$r$, $s$を数列とします。このとき
$$
r\equiv s\leftrightarrow [[r=s]]\in{\mathscr F}
$$
と表します。ここで
$$
[[r=s]]\leftrightarrow \{n\in{\mathbb N}|r_n=s_n\}
$$
です。$[[\cdot]]$は論理学では「解釈」とか「値」と呼ばれます。これは$[[\cdots]]$の中の式の意味を表す記号です。$[[r=s]]\in{\mathscr F}$であるとき、「殆どどこでも$r=s$」と言うことがあります。
不等式も同じです:
\begin{align}
[[r>s]]&\leftrightarrow \{n\in{\mathbb N}|r_n>s_n\},\\
[[r< s]]&\leftrightarrow \{n\in{\mathbb N}|r_n< s_n\},\\
[[r\le s]]&\leftrightarrow \{n\in{\mathbb N}|r_n\le s_n\}
\end{align}
$[r]$を、$r$という数列の$\equiv$による同値類を表すことにします。これは$\equiv$で結ばれている量をまとめて、それらをそれらの中のある元で代表させたものです。つまり
$$
[r]=\{s\in {\mathbb R}^{\mathbb N}|r\equiv s\}
$$
です${}^\spadesuit$。そしてこの${\mathbb R}^{\mathbb N}$の商集合を${}^*{\mathbb R}$と表します。すなわち
$$
{}^*{\mathbb R}=\{[r]|r\in{\mathbb R}^{\mathbb N}\}
$$
です。${}^*{\mathbb R}$は超実数と呼ばれます。
${}^*{\mathbb R}$の元に関する和と積は以下で定義されます。
\begin{align}
[r]+[s]&=[r\oplus s]=[\langle r_n+s_n\rangle]\\
[r]\cdot[s]&=[r\odot s]=[\langle r_n\cdot s_n\rangle]
\end{align}
また
$$
[r]<[s] \leftrightarrow [[r< s]]\in{\mathscr F}\leftrightarrow\{n\in{\mathbb N}|r_n< s_n\}\in{\mathscr F}
$$
で順序を定義します。
和の逆元は数列を負にするだけです。積の逆元は次のように構成します。$[r]\neq [0]$とします。ゆえに$\{n\in{\mathbb N}|r_n=0\}\notin {\mathscr F}$であり、その$\mathbb N$に対する補集合を$J=\{n\in{\mathbb N}|r_n\neq 0\}\in{\mathscr F}$とします。ここで
\begin{align}
s_n=
\displaystyle
\begin{cases}
1/r_n & \text{if } n\in J\\
0 & \text{otherwise}
\end{cases}
\end{align}
とすると(つまりは数列の0の要素はそのまま、ノンゼロの要素は逆数をとる)
$$
[[r\odot s=1]]\in {\mathscr F}
$$
となります。これにより$r\odot s=1$を定義すれば
$$
[r]\cdot [s]=[r\odot s]=[1]
$$
は${}^*{\mathbb R}$の元になります。これは$[s]$が$[r]\neq [0]$の積の逆元$[r]^{-1}$であることを示しています。
以上より、順序体である超実数${}^*{\mathbb R}$が構成できました。
フィルターの感覚を掴むため、その性質を具体的な数列の等式から見ていきます。
(A)より、$\mathscr F$は$\mathbb N$を要素にもちます。そうでなくてはヘンです。なぜなら当然
$$
\langle r_1,r_2,r_3,\ldots\rangle =\langle s_1,s_2,s_3,\ldots\rangle, \ \ \ r_k=s_k \text{ for all }k\in {\mathbb N}
$$
であるべきですが、このとき要素の等しいインデックスの集合は$\mathbb N$そのものです。よって等式が成立するために、${\mathbb N}\in {\mathscr F}$でなくてはなりません。
つぎに、(A)より${\mathscr F}$には空集合は含まれません。もしこれが含まれてしまうと、1つも同じ要素がない2つの数列が等しくなってしまいます。つまり
$$
\langle r_1,r_2,r_3,\ldots\rangle \neq \langle s_1,s_2,s_3,\ldots\rangle, \ \ \ r_k\neq s_k
\text{ for all }k \in {\mathbb N}
$$
であるために$\emptyset \notin {\mathscr F}$が必要です。
つぎに、有限個だけ要素が違ってあとは等しい場合を考えます。つまり要素が等しいインデックスの集合$A$が
$$
{\mathbb N}-A\text{は有限}
$$
の条件を満たすときを考えます。これをcofiniteと呼びます。例えば
$$
\langle 2,1,3,4,5,6,\ldots\rangle\text{と}\langle 1,2,3,4,5,6,\ldots\rangle
$$
の等しいインデックスの集合$A=\{n\in{\mathbb N}|n\ge 3\}$はcofiniteです。この2つの数列は「殆どすべて等しい」ので、同値であるべきです。つまり、cofiniteな$A$は$\mathscr F$に含まれるべきです。
ここで$\mathbb N$上のFréchetフィルター(cofiniteフィルターとも呼ばれる)とは以下のフィルターです:
$$
{\mathscr F}^{\rm co}=\{A\subseteq {\mathbb N}| {\mathbb N}-A\text{は有限}\}
$$
上の議論からこのフィルターは$\mathscr F$に含まれるべきなのですが、実は(A)-(D)の条件では、必ずしも${\mathscr F}^{\rm co}\subset {\mathscr F}$とは限りません。しかし、無限集合上の超フィルターには、Fréchetフィルターを含むものが必ず存在します(だいたいの教科書に説明があると思います)。このようなフィルターはnonprincipalと呼ばれます。そして${}^*{\mathbb R}$の構成にはnonprincipalフィルターを採用します。ゆえに、${}^*{\mathbb R}$を考える際には、cofiniteな集合は$\mathscr F$に含まれます。
フィルターに(D)の超フィルター条件をつける理由を述べておきます。
この条件をつけると、ある集合$A$は${\mathscr F}$か${\mathscr F}^{\rm co}$のどちらか一方に必ず排他的に含まれます。すると
\begin{align}
[[r=s]]&\leftrightarrow \{n\in{\mathbb N}|r_n=s_n\},\\
[[r>s]]&\leftrightarrow \{n\in{\mathbb N}|r_n>s_n\},\\
[[r< s]]&\leftrightarrow \{n\in{\mathbb N}|r_n< s_n\}
\end{align}
の3条件のどれか1つのみが必ず成り立ちます(上の3つの集合が排他的かつその和集合が$\mathbb N$になることは明らかかと思います)。これを付与しておかないと、2つの超実数に関して、$=,>,<$のどれかが排他的に必ず成立するという$\mathbb R$で成立する関係が成立しなくなります(Ref.[2]P21)。ただしこれが成立しなくても矛盾ではないです。
次の数列を考えます:
$$
\langle a_n\rangle=\langle 1,1/2,1/3,1/4,\ldots\rangle
$$
任意の実数$r:\langle r,r,r,\ldots\rangle$に対し、$\{n\in{\mathbb N}|a_n< r\}$はcofiniteです。上記したように、nonprincipalフィルターを採用しているので${\mathscr F}^{\rm co}$は${\mathscr F}$に含まれ、任意の実数$r$に対して$\langle a_n\rangle<\langle r\rangle$が成立します。このような${}^*{\mathbb R}$の元を無限小と言います。さらに$a_n$のどの要素も0より大きいから$0<\langle a_n\rangle$です。
以上から、$\epsilon=[\langle a_n\rangle]$とすれば、$\epsilon$は任意の実数より小さいのにゼロより大きいという、望みの無限小が得られました。
一方、$\langle 1/a_n\rangle=\langle 1,2,3,4,\ldots\rangle$は、任意の$r:\langle r,r,r,\ldots\rangle$に対し$\{n\in{\mathbb N}|a_n>r\}$がcofiniteなので、どんな実数より大きく無限大です。
冒頭に示したように、無限小$\epsilon$を用いて
$0.999...=1-\epsilon$
とすれば、$0.999...<1$かつその間に実数は存在しないという、直観と整合的な$0.999...$が得られます。
ただ、この表記には以下のように任意性があります:
$$
\begin{aligned}
&\epsilon=[\langle 0.1,0.01,0.001,\ldots \rangle] \leftrightarrow 0.999...=[\langle 0.9,0.99,0.999,...\rangle],\\
&\epsilon=[\langle 0.01,0.001,0.0001,\ldots \rangle] \leftrightarrow 0.999...=[\langle 0.99,0.999,0.9999,...\rangle]\\
&\vdots
\end{aligned}
$$
当然どれでもいいです。今までの議論から、この定義における$0.999...$のどちらも$0.999...<1$かつ$0.999...$と$1$の間には実数が存在しないことは簡単に示せます(直感的にも明らかです)。
超実数の無限小$\epsilon$により$0.999...=1-\epsilon$とすることで
$$
0.999...<1
$$
が無矛盾に成立します。本記事では、無限小$\epsilon$の構成法を大雑把に説明しました。
2つコメントです:
$0.999...=1$に納得がいかないなら、超実数による$0.999...$の構成を自分の中に密かに抱くこともよいと思います。
おしまい${}_\blacksquare$
$\spadesuit:$ 同値なものなら、その類をどの元で代表させてもよいです。このような場合をwell-definedと呼びます。