$\forall \epsilon > 0 [ |x| < \epsilon ] \Leftrightarrow x=0$

$ \newcommand{\SETL}{\bigl\{} \newcommand{\SETM}{\bigm|} \newcommand{\SETR}{\bigr\}} \newcommand{\NATURAL}{{\mathbb N}} \newcommand{\REAL}{{\mathbb R}} \newcommand{\PRIME}{{\mathbb P}} \newcommand{\COMPLEX}{{\mathbb C}} \newcommand{\ZEE}{{\mathbb Z}} \newcommand{\QUE}{{\mathbb Q}} \newcommand{\LAND}{\,\land\,} \newcommand{\LOR}{\,\lor\,} \newcommand{\LNOT}{\lnot} $


以下のメモは、2011年にWeb日記に書いたものをもとにしている。
http://www.hyuki.com/d/201104.html#i20110407080000

問題

$x$についての二つの条件「任意の正の実数$\epsilon$に対して、実数$x$の絶対値は$\epsilon$より小さい」と「実数$x$は$0$に等しい」とが同値であることを証明せよ。

補足

「$\forall \epsilon > 0 [ |x| < \epsilon ] \Leftrightarrow x=0$を証明せよ」という意味です。

解答

まず、$\forall\epsilon>0[|x|<\epsilon]\Leftarrow x=0$は明らかである。

次に、$\forall\epsilon>0[|x|<\epsilon]\Rightarrow x=0$を証明する。この命題の対偶、すなわち
$$
x\neq0 \Rightarrow \exists\epsilon>0[|x|\geq\epsilon]
$$
を証明する。$x\neq0$のとき、たとえば$\epsilon=|x|/2$と置く。すると、$\epsilon>0$であり、しかも$|x|\geq|x|/2=\epsilon$だから、$|x|\geq\epsilon$が成り立つ。よって、
$$
x\neq0 \Rightarrow \exists\epsilon>0[|x|\geq\epsilon]
$$
が証明された。

したがって、
$$
\forall\epsilon>0[|x|<\epsilon]\Leftrightarrow x=0
$$
は証明された。

ここでは何気なく書いているけれど、
$$
\forall\epsilon>0[|x|<\epsilon]\Rightarrow x=0
$$
の対偶が、
$$
x\neq0 \Rightarrow \exists\epsilon>0[|x|\geq\epsilon]
$$
になるというのは正しいけれど、疑問に思う人がいるかもしれない。特に、
$$
\forall\epsilon>0[|x|<\epsilon]
$$
の否定が、
$$
\exists\epsilon>0[|x|\geq\epsilon]
$$
になるところ。以下のような変形をしています。

$$
\begin{align*}
\LNOT(\forall\epsilon>0[|x|<\epsilon])
& \Leftrightarrow \LNOT(\forall \epsilon[\epsilon>0 \Rightarrow |x|<\epsilon]) \\
& \Leftrightarrow \LNOT(\forall \epsilon[\LNOT(\epsilon>0) \LOR |x|<\epsilon]) \\
& \Leftrightarrow \LNOT(\forall \epsilon[\epsilon \leq 0 \LOR |x|<\epsilon]) \\
& \Leftrightarrow \exists \epsilon[\LNOT(\epsilon \leq 0 \LOR |x|<\epsilon)] \\
& \Leftrightarrow \exists \epsilon[\LNOT(\epsilon \leq 0) \LAND \LNOT(|x|<\epsilon)] \\
& \Leftrightarrow \exists \epsilon[\epsilon > 0 \LAND |x| \geq \epsilon] \\
& \Leftrightarrow \exists \epsilon > 0 [|x| \geq \epsilon] \\
\end{align*}
$$

引っかかりそうな箇所は、以下の二行の違い。
$$
\begin{align*}
\forall\epsilon >0 [ \cdots ] &\Leftrightarrow \forall\epsilon [ \epsilon > 0 \Rightarrow \cdots ] \\
\exists\epsilon >0 [ \cdots ] &\Leftrightarrow \exists\epsilon [ \epsilon > 0 \LAND \cdots ] \\
\end{align*}
$$


Tweet

『数学ガール』作者。毎週火曜日は結城メルマガ。毎週金曜日はWeb連載「数学ガールの秘密ノート」。文章書きとプログラミングが好きなクリスチャン。

— 結城浩 (@hyuki) 2015年5月17日