コンテンツにスキップ

証明の技術:数学的帰納法と背理法はなぜ正しいのか

前提:数とは何か:自然数から実数へ、そして 1 = 0.999… はなぜ正しいのか

生 Markdown
  • 数学的帰納法の帰納ステップが証明しているのは「P(n)P(n) が正しい」ではなく「P(n)P(n) ならば P(n+1)P(n+1)」という含意です。ここを取り違えると、帰納法は循環論法に見えてしまいます。
  • 帰納法の正しさは自然数の整列性から従い、逆に整列性も帰納法から従います。ペアノの公理系では帰納法は第 5 公理、つまり自然数の定義の一部です。証明すべき定理なのか、置くべき公理なのかは、どこから出発するかの問題です。
  • 基底ステップを落とすと、帰納ステップが完璧でも結論はすべて偽になりえます。逆に「すべての馬は同じ色」の誤証明では、基底は正しく、帰納ステップが n=1n = 1 でだけ破れています。
  • 背理法は「¬P\lnot P を仮定して何らかの矛盾を導く」、対偶証明は「¬Q\lnot Q を仮定して ¬P\lnot P を導く」。後者は前者の特殊な形であり、書き直せるなら対偶で書いたほうが読みやすくなります。
  • x2=2x^2 = 2 を満たす有理数が存在しないことは、既約分数を使う証明と無限降下法による証明の二通りで示せます。後者は整列性、つまり帰納法を裏返した形をそのまま使います。

1. 動機:無限個の主張を有限の紙に書く

Section titled “1. 動機:無限個の主張を有限の紙に書く”

数学の主張の多くは「すべての自然数 nn について〜」という形をしています。たとえば

1+2++n=n(n+1)21 + 2 + \cdots + n = \frac{n(n+1)}{2}

これは n=1n = 1 の主張、n=2n = 2 の主張、n=3n = 3 の主張……という無限個の主張を一度に述べたものです。n=1n = 1 から順に確かめていけば n=100n = 100 までは有限時間で片づきます。しかしそこで止めた人は、「では n=101n = 101 は」と聞かれて答えられません。確認を積み上げる方針では、いつまでたっても終わりません。

有限の紙に無限個の主張の証明を書くには、質的に違う仕掛けが要ります。数学的帰納法はその代表です。着想は単純で、「1 枚目を倒す」ことと「どの 1 枚が倒れても次が倒れる」ことの 2 つだけを示せば、ドミノは無限に倒れていくというものです。無限回の確認を、有限個(この場合 2 つ)の証明に圧縮しているわけです。

一方、示したい命題の中身を直接組み立てられない場合もあります。「2\sqrt2 は分数で書けない」という主張は、書けないことを示すのですから、何かを作って見せる方向では手が出ません。こういうときは「書けたとしたら何が起きるか」を追いかけて、破綻を探します。これが背理法です。

歴史的には、どちらも古い技術です。通約不可能量(共通の物差しで測れない二つの量)の発見は紀元前 5 世紀のピタゴラス学派にさかのぼり、正方形の対角線と辺が通約不可能であることは背理法によって示されました。数学的帰納法の明示的な使用は 16 世紀のマウロリコ、17 世紀のパスカル『算術三角形論』に見られ、19 世紀末にペアノが自然数の公理系の一部としてこれを定式化します。

使い方を覚えるだけなら 1 ページで済みます。この記事が「なぜ正しいのか」に紙面を割くのは、根拠を知らないと誤った帰納法を見抜けないからです。誤った帰納法は実在しますし、しかも見た目は正しい帰納法とほとんど区別がつきません。

2. 準備:含意と、その逆・裏・対偶

Section titled “2. 準備:含意と、その逆・裏・対偶”

自然数全体を N={1,2,3,}\mathbb{N} = \{1, 2, 3, \ldots\} と書きます。この記事では 00 を自然数に含めません。整数全体を Z\mathbb{Z}、有理数全体を Q\mathbb{Q}、実数全体を R\mathbb{R} と書きます。数の体系そのもの(Q\mathbb{Q}R\mathbb{R}順序体(定義 2.1)[数とは何か] であること)については 数とは何か? を、論理記号の扱い(論理結合子(定義 2.3)[数学の国語] や量化子)については 数学の国語 - 集合と論理 を参照してください。

命題 PPQQ に対し、PQP \Rightarrow Q(「PP ならば QQ」)の真偽は次の表で定めます。とくに、PP が偽であれば QQ の真偽によらず PQP \Rightarrow Q は真です。この規約は後で何度も効いてきます。

定義 2.1逆・裏・対偶

命題 PQP \Rightarrow Q に対して、

  • QPQ \Rightarrow P をその
  • ¬P¬Q\lnot P \Rightarrow \lnot Q をその
  • ¬Q¬P\lnot Q \Rightarrow \lnot P をその対偶

といいます。

真偽の対応は次のとおりです。

PPQQPQP \Rightarrow Q対偶 ¬Q¬P\lnot Q \Rightarrow \lnot PQPQ \Rightarrow P

第 3 列と第 4 列が完全に一致し、第 5 列は一致しません。もとの命題と対偶は同じことを言っており、逆は別のことを言っている、というのがこの表の読み方です。

自然数の集合には、実数や有理数にはない次の性質があります。

公理 3.1整列性

N\mathbb{N} の空でない任意の部分集合は、最小元をもつ。すなわち SNS \subseteq \mathbb{N} かつ SS \ne \emptyset ならば、ある mSm \in S が存在して、すべての nSn \in S に対し mnm \le n が成り立つ。

この性質が自明でないことは、有理数と比べればわかります。集合 {xQ:x>0}\{x \in \mathbb{Q} : x > 0\} は空でない Q\mathbb{Q} の部分集合ですが、最小元をもちません。正の有理数 xx を一つ取れば x/2x/2 はより小さい正の有理数だからです。「これ以上小さくできない」が保証されるのは、自然数が離散的に並んでいることの帰結です。

定理 3.2数学的帰納法の原理

nNn \in \mathbb{N} に対して命題 P(n)P(n) が定まっているとする。次の 2 条件を仮定する。

  1. (基底ステップ)P(1)P(1) は真である。
  2. (帰納ステップ)任意の nNn \in \mathbb{N} に対して、「P(n)P(n) が真ならば P(n+1)P(n+1) も真である」が成り立つ。

このとき、すべての nNn \in \mathbb{N} に対して P(n)P(n) は真である。

証明(定理 3.2)

反例の集合

S={nN:P(n) は偽}S = \{\, n \in \mathbb{N} : P(n) \text{ は偽} \,\}

を考えます。示したい結論は S=S = \emptyset にほかなりません。

そこで SS \ne \emptyset と仮定します(ここで背理法を使います。背理法の正当化は 命題 6.2 で行いますが、ここでは既知の論理として使わせてください)。SSN\mathbb{N} の空でない部分集合ですから、整列性(公理 3.1) により最小元 mSm \in S をもちます。

まず m1m \ne 1 です。実際、仮定 1 より P(1)P(1) は真なので 1S1 \notin S であり、mSm \in S だからです。mNm \in \mathbb{N} かつ m1m \ne 1 なので m2m \ge 2、したがって m1m - 1 もまた自然数です。

次に m1Sm - 1 \notin S です。なぜなら m1<mm - 1 < m であり、mmSS の最小元だからです。m1Sm-1 \notin S とは P(m1)P(m-1) が真だということです。

ここで仮定 2 を n=m1n = m - 1 に適用します。P(m1)P(m-1) が真なので P((m1)+1)=P(m)P((m-1)+1) = P(m) も真です。ところが mSm \in S とは P(m)P(m) が偽だということでした。P(m)P(m) が真かつ偽となり矛盾します。

したがって SS \ne \emptyset という仮定は誤りで、S=S = \emptyset、すなわちすべての nnP(n)P(n) は真です。

flowchart LR
Z["基底ステップ: P(1) を証明"] --> A["P(1)"]
A -->|"帰納ステップ (n=1)"| B["P(2)"]
B -->|"帰納ステップ (n=2)"| C["P(3)"]
C -->|"帰納ステップ (n=3)"| D["P(4)"]
D -->|"以下同様"| E["…"]
基底ステップが 1 枚目を倒し、帰納ステップが隣へ伝える

注意 3.3なぜ循環論法ではないのか

帰納法にはじめて触れた人がほぼ必ず抱く疑問は、「P(n)P(n) を仮定して P(n+1)P(n+1) を示すのなら、示したいことを仮定していることにならないか」というものです。

なりません。帰納ステップで証明しているのは P(n)P(n) ではなく、P(n)P(n+1)P(n) \Rightarrow P(n+1) という含意だからです。この含意は、P(n)P(n) が偽である場合には §2 の真理値表によって自動的に真になります。つまり帰納ステップだけを証明しても、PP が真である nn が一つでも存在することは保証されません。実際 例 5.1 は、帰納ステップが完全に正しいのにすべての nnP(n)P(n) が偽である例です。

P(n)P(n) を仮定する」という言い回しは、「もし P(n)P(n) が真である世界にいるならば」という条件付きの議論の合図であって、P(n)P(n) を認めているわけではありません。

例 3.41 から n までの和

すべての nNn \in \mathbb{N} に対し k=1nk=n(n+1)2\displaystyle\sum_{k=1}^{n} k = \frac{n(n+1)}{2} が成り立ちます。

P(n)P(n) をこの等式とします。

基底ステップ。 n=1n = 1 のとき、左辺は 11、右辺は 122=1\dfrac{1 \cdot 2}{2} = 1 です。一致するので P(1)P(1) は真です。

帰納ステップ。 nNn \in \mathbb{N} を任意に取り、P(n)P(n)、すなわち k=1nk=n(n+1)2\sum_{k=1}^{n} k = \frac{n(n+1)}{2} を仮定します。このとき

k=1n+1k=(k=1nk)+(n+1)=n(n+1)2+(n+1)(帰納法の仮定を使用)=(n+1)(n2+1)=(n+1)(n+2)2.\begin{aligned} \sum_{k=1}^{n+1} k &= \left(\sum_{k=1}^{n} k\right) + (n+1) \\ &= \frac{n(n+1)}{2} + (n+1) && \text{(帰納法の仮定を使用)} \\ &= (n+1)\left(\frac{n}{2} + 1\right) \\ &= \frac{(n+1)(n+2)}{2}. \end{aligned}

最後の式は (n+1)((n+1)+1)2\dfrac{(n+1)\bigl((n+1)+1\bigr)}{2} そのものですから、P(n+1)P(n+1) が成り立ちます。

定理 3.2 により、すべての nnP(n)P(n) が成り立ちます。

例 3.5ベルヌーイの不等式と、仮定を落としたときの反例

xxx1x \ge -1 を満たす実数、nNn \in \mathbb{N} とすると (1+x)n1+nx(1+x)^n \ge 1 + nx が成り立ちます。

基底ステップ。 n=1n = 1 のとき、両辺とも 1+x1 + x で等号が成り立ちます。

帰納ステップ。 (1+x)n1+nx(1+x)^n \ge 1 + nx を仮定します。仮定 x1x \ge -1 より 1+x01 + x \ge 0 ですから、不等式の両辺に 1+x1+x を掛けても不等号の向きは変わりません。よって

(1+x)n+1=(1+x)n(1+x)(1+nx)(1+x)=1+(n+1)x+nx21+(n+1)x.(1+x)^{n+1} = (1+x)^n (1+x) \ge (1+nx)(1+x) = 1 + (n+1)x + n x^2 \ge 1 + (n+1)x .

最後の不等号は nx20n x^2 \ge 0 からです。

仮定 x1x \ge -1 を落とすとどうなるか。 帰納ステップで 1+x01+x \ge 0 を使ったのですから、そこが壊れます。実際 x=4x = -4, n=3n = 3 とすると、左辺は (14)3=27(1-4)^3 = -27、右辺は 1+3(4)=111 + 3 \cdot (-4) = -11 で、2711-27 \ge -11 は成り立ちません。仮定は飾りではなく、証明のどこかで必ず使われています。

4. ペアノの公理:帰納法は定理か公理か

Section titled “4. ペアノの公理:帰納法は定理か公理か”

定理 3.2 は整列性から証明されました。では整列性はどこから来るのでしょうか。実は整列性も帰納法から証明できます。両者は同値な性質であり、どちらか一方を自然数の性質として認めれば他方が従います。

そうすると「自然数とは何か」という問いに戻らざるをえません。19 世紀末にペアノが与えた答えが次の公理系です。s(n)s(n)nn後者(次の数)を表します。

公理 4.1ペアノの公理

集合 N\mathbb{N}、その元 11、および写像 s:NNs : \mathbb{N} \to \mathbb{N} が次を満たすとする。

  1. 1N1 \in \mathbb{N}
  2. 任意の nNn \in \mathbb{N} に対し s(n)Ns(n) \in \mathbb{N}
  3. 任意の nNn \in \mathbb{N} に対し s(n)1s(n) \ne 111 はどの数の後者でもない)。
  4. 任意の m,nNm, n \in \mathbb{N} に対し、s(m)=s(n)s(m) = s(n) ならば m=nm = nss は単射)。
  5. (帰納法の公理)SNS \subseteq \mathbb{N} が「1S1 \in S」かつ「nSn \in S ならば s(n)Ss(n) \in S」を満たすならば、S=NS = \mathbb{N} である。

このとき (N,1,s)(\mathbb{N}, 1, s) を自然数の体系という。

第 5 公理は 定理 3.2 そのものです。SS として「P(n)P(n) が真であるような nn の集合」を取れば、条件は基底ステップと帰納ステップに、結論は「すべての nnP(n)P(n)」に翻訳されます。つまりペアノの立場では、帰納法は証明すべき定理ではなく、自然数がどういうものかを定める規定の一部です。

なお、ペアノ自身の 1889 年の原論文では出発点の数は 11 でした。今日の教科書では 00 から始める流儀が多く、どちらでも理論は同じように展開できます。

注意 4.2どの公理が何を担っているか

公理を一つ落とすと何が壊れるかを見ると、各公理の役割がわかります。

公理 3 を落とす。 N={1,2,3}\mathbb{N}' = \{1, 2, 3\} とし、s(1)=2s(1) = 2, s(2)=3s(2) = 3, s(3)=1s(3) = 1 と定めます。ssN\mathbb{N}' 上の全単射なので公理 4 は成立します。公理 5 も成立します。実際、1S1 \in S かつ ss で閉じている SS1,2,31, 2, 3 をすべて含むので S=NS = \mathbb{N}' です。しかし s(3)=1s(3) = 1 なので公理 3 が破れています。つまり公理 3 がないと、有限個しか元をもたない「自然数もどき」が許されてしまいます。帰納法だけでは無限性は出てこないのです。

公理 5 を落とす。 N\mathbb{N} に、整数と同じ形に並んだ元の列 ,a1,a0,a1,\ldots, a_{-1}, a_0, a_1, \ldots を付け加えた集合を N\mathbb{N}^{*} とし、s(ak)=ak+1s(a_k) = a_{k+1} と定めます。aka_k11 でも s(n)s(n)nn は普通の自然数)でもないので公理 1 から 4 はすべて成立します。ところが S=NS = \mathbb{N}11 を含み ss で閉じているのに N\mathbb{N}^{*} 全体と一致しません。公理 5 は「11 から ss を繰り返して届く範囲より外に余計な元はない」という要請なのです。

この「余計な元がついた自然数」は非標準モデルと呼ばれ、形式的な体系が意図した対象を一意に定めきれるかという問題につながります。この方向の話題は 数学基礎論への招待 - 不完全性定理、とくに 例 5.4[ゲーデルの不完全性定理] を参照してください。

定理 4.3完全帰納法

nNn \in \mathbb{N} に対して命題 P(n)P(n) が定まっているとする。

  • 任意の nNn \in \mathbb{N} に対して、「nn より小さいすべての kNk \in \mathbb{N} について P(k)P(k) が真」ならば「P(n)P(n) が真」

が成り立つとする。このとき、すべての nNn \in \mathbb{N} に対して P(n)P(n) は真である。

証明(定理 4.3)

Q(n)Q(n) を「nn 以下のすべての kNk \in \mathbb{N} について P(k)P(k) が真である」という命題とし、QQ定理 3.2 を適用します。

基底ステップ。 仮定を n=1n = 1 に適用します。11 より小さい自然数は存在しないので、「11 より小さいすべての kk について P(k)P(k) が真」は空虚に真です(すべての kk について言うべきことが何もありません)。よって仮定より P(1)P(1) は真です。11 以下の自然数は 11 だけなので、Q(1)Q(1) が成り立ちます。

帰納ステップ。 Q(n)Q(n) を仮定します。すなわち knk \le n なるすべての kkP(k)P(k) は真です。自然数について k<n+1k < n+1knk \le n は同値ですから、これは「n+1n+1 より小さいすべての kkP(k)P(k) が真」ということです。そこで仮定を n+1n+1 に適用すると P(n+1)P(n+1) が真になります。あわせて kn+1k \le n+1 なるすべての kkP(k)P(k) が真、すなわち Q(n+1)Q(n+1) が成り立ちます。

定理 3.2 により、すべての nnQ(n)Q(n) が真です。とくに P(n)P(n) が真です。

例 4.4素因数分解の存在

22 以上のすべての自然数は、素数の積として表せます(素数 11 個だけの積も認めます)。

P(n)P(n) を「n2n \ge 2 ならば nn は素数の積として表せる」とします。n=1n = 1 のときは前提が偽なので P(1)P(1) は真です(§2 の真理値表)。

n2n \ge 2 とし、nn より小さいすべての自然数 kkP(k)P(k) が真だと仮定します。

  • nn が素数のとき。nn 自身が素数 11 個の積なので P(n)P(n) が成り立ちます。
  • nn が素数でないとき。n2n \ge 2 で素数でないので、n=abn = ab かつ 1<a<n1 < a < n1<b<n1 < b < n を満たす自然数 a,ba, b が存在します(これが合成数の定義です)。1<a1 < aaa が自然数であることから a2a \ge 2、同様に b2b \ge 2 です。また a<na < nb<nb < n なので、帰納法の仮定が aabb の両方に使えて、aabb も素数の積に書けます。それらを並べれば n=abn = ab も素数の積です。

いずれの場合も P(n)P(n) が成り立つので、定理 4.3 よりすべての nnP(n)P(n) が真です。

ここで通常の帰納法が使えないことに注意してください。nn の分解 n=abn = ab に現れる a,ba, bn1n-1 とは限らず、22 から n1n-1 のどこに現れるか予測できません。「一つ前」ではなく「それより小さいものすべて」を仮定できることが、完全帰納法の値打ちです。

例 5.1帰納ステップだけが正しい偽の命題

P(n)P(n) を次の等式とします。

k=1nk=n(n+1)2+7.\sum_{k=1}^{n} k = \frac{n(n+1)}{2} + 7 .

帰納ステップを確かめてみます。P(n)P(n) を仮定すると

k=1n+1k=(k=1nk)+(n+1)=n(n+1)2+7+(n+1)=(n+1)(n+2)2+7\sum_{k=1}^{n+1} k = \left(\sum_{k=1}^{n} k\right) + (n+1) = \frac{n(n+1)}{2} + 7 + (n+1) = \frac{(n+1)(n+2)}{2} + 7

となり、これは P(n+1)P(n+1) そのものです。帰納ステップは完全に正しく、どこにも誤りがありません。

ところが P(1)P(1) は「1=1+71 = 1 + 7」であり偽です。例 3.4 によって正しい和は n(n+1)/2n(n+1)/2 ですから、P(n)P(n) はすべての nn で偽です。

倒れる仕組みだけが整っていて、最初の 1 枚を倒す人がいないドミノ列——それが基底ステップを欠いた帰納法です。注意 3.3 で述べたとおり、帰納ステップは含意しか主張していないので、単独では何も生みません。

例 5.2すべての馬は同じ色である(誤証明)

P(n)P(n) を「馬の任意の nn 頭の集まりについて、それらはすべて同じ色である」とします。

基底ステップ。 P(1)P(1) は真です。馬 11 頭だけの集まりは、その馬自身と同じ色なのですから。

帰納ステップ(と称するもの)。 P(n)P(n) を仮定し、馬 n+1n+1h1,h2,,hn+1h_1, h_2, \ldots, h_{n+1} を取ります。

A={h1,,hn},B={h2,,hn+1}A = \{h_1, \ldots, h_n\}, \qquad B = \{h_2, \ldots, h_{n+1}\}

はどちらも nn 頭の集まりなので、帰納法の仮定より AA の中の馬はすべて同色、BB の中の馬もすべて同色です。AB={h2,,hn}A \cap B = \{h_2, \ldots, h_n\} に属する馬を一頭取れば、その色は AA 全体の色でも BB 全体の色でもあるので、AA の色と BB の色は一致します。ABA \cup Bn+1n+1 頭全体ですから、P(n+1)P(n+1) が成り立ちます。

穴はどこか。 最後の議論は ABA \cap B \ne \emptyset を前提にしています。AB={h2,,hn}A \cap B = \{h_2, \ldots, h_n\} が空でないのは n2n \ge 2 のときだけです。n=1n = 1 のときは A={h1}A = \{h_1\}B={h2}B = \{h_2\} で共通の馬がおらず、AA の色と BB の色を結びつける根拠がありません。

つまり P(1)P(2)P(1) \Rightarrow P(2) が示せていません。そして P(2)P(2) は偽です(色の違う馬は実在します)。ドミノは 1 枚目と 2 枚目の間で切れており、そこから先は一枚も倒れません。

教訓は、帰納ステップはすべての nn について示さねばならない、ということです。「一般の nn について」と書いた議論が、小さい nn で暗黙の前提を使っていないかを必ず点検してください。とくに「二つの部分集合の共通部分を取る」「n1n-1 を考える」「二つに分ける」といった操作が出てきたら要注意です。

注意 5.3有限個の確認では足りない

n=1n = 1 から n=5n = 5 まで確かめたので一般に正しい」は証明ではありません。反例が現れるのがずっと先だという例は、いくらでもあります。

  • オイラーが 1772 年ごろに注目した多項式 f(n)=n2+n+41f(n) = n^2 + n + 41 は、n=0,1,,39n = 0, 1, \ldots, 39 という 4040 個の整数すべてに対して素数の値を取ります。しかし f(40)=1600+40+41=1681=412f(40) = 1600 + 40 + 41 = 1681 = 41^2 は素数ではありません。
  • フェルマー数 Fn=22n+1F_n = 2^{2^n} + 1n=0,1,2,3,4n = 0, 1, 2, 3, 4 に対して 3,5,17,257,655373, 5, 17, 257, 65537 となり、すべて素数です。フェルマーはすべての nn で素数になると予想しましたが、1732 年にオイラーが F5=4294967297=641×6700417F_5 = 4294967297 = 641 \times 6700417 と分解して見せました。

次のコードで両方を確かめられます。

def is_prime(m):
if m < 2:
return False
d = 2
while d * d <= m:
if m % d == 0:
return False
d += 1
return True
# n^2 + n + 41 が素数でない最小の n(0 以上)
print([n for n in range(41) if not is_prime(n * n + n + 41)]) # -> [40]
# フェルマー数 F_5 の分解
print(2**32 + 1 == 641 * 6700417) # -> True

数値実験は、何を証明すべきかを見つけるためには有用です。しかしそれ自体は証明ではありません。「nn から n+1n+1 へ渡す論理」を書いてはじめて、無限個の主張が保証されます。

命題 6.1対偶の同値性

任意の命題 P,QP, Q について、PQP \Rightarrow Q が真であることと、その対偶 ¬Q¬P\lnot Q \Rightarrow \lnot P が真であることは同値である。

証明(命題 6.1)

§2 の真理値表で第 3 列と第 4 列が一致していることからも読み取れますが、意味を追う形でも示しておきます。

\Rightarrow の向き)PQP \Rightarrow Q が真だとします。¬Q\lnot Q を仮定します。もし PP が真だとすると、PQP \Rightarrow Q より QQ が真になり、仮定 ¬Q\lnot Q と両立しません。よって PP は偽、すなわち ¬P\lnot P が真です。¬Q\lnot Q から ¬P\lnot P が導けたので ¬Q¬P\lnot Q \Rightarrow \lnot P が真です。

\Leftarrow の向き)¬Q¬P\lnot Q \Rightarrow \lnot P が真だとします。PP を仮定します。もし QQ が偽、つまり ¬Q\lnot Q が真だとすると、仮定より ¬P\lnot P が真になり、PP と両立しません。よって ¬Q\lnot Q は偽、すなわち ¬¬Q\lnot \lnot Q が真です。ここで二重否定除去 ¬¬QQ\lnot\lnot Q \Rightarrow Q を使うと QQ が真です。PP から QQ が導けたので PQP \Rightarrow Q が真です。

\Leftarrow の向きで二重否定除去を使ったことに注意してください。「対偶を示せばもとの命題が示せる」という、実際に使うほうの向きこそが、古典論理に固有の規則に依存しています。

命題 6.2背理法の正当性

命題 PP について、¬P\lnot P を仮定するとある命題 RR に対して RR¬R\lnot R の両方が導かれるならば、PP は真である。

証明(命題 6.2)

仮定は ¬P(R¬R)\lnot P \Rightarrow (R \wedge \lnot R) が真だということです。R¬RR \wedge \lnot RRR の真偽にかかわらず偽です(RR が真なら ¬R\lnot R が偽、RR が偽なら RR が偽で、いずれにせよ連言は偽)。

いま ¬P\lnot P が真だと仮定すると、真である含意の前件が真なので後件 R¬RR \wedge \lnot R も真になります。これは R¬RR \wedge \lnot R が偽であることに反します。よって ¬P\lnot P は偽、すなわち ¬¬P\lnot\lnot P が真です。二重否定除去(同じことですが排中律 P¬PP \vee \lnot P)により PP が真です。

6.3. 二つはどう違い、どう重なるか

Section titled “6.3. 二つはどう違い、どう重なるか”
直接証明P ならば Q を示す対偶証明P ならば Q を示す背理法P を示すP を仮定する¬Q を仮定する¬P を仮定するQ に到達する¬P に到達する何らかの矛盾に到達する上二つはゴールが決まっている。背理法だけは、どんな矛盾を出してもよい。
三つの証明法の出発点と到達点

表にまとめます。

直接証明対偶証明背理法
示したい形PQP \Rightarrow QPQP \Rightarrow QPP(含意でなくてよい)
仮定として置くものPP¬Q\lnot Q¬P\lnot P
目指すゴールQQ¬P\lnot P任意の矛盾
ゴールは決まっているか決まっている決まっている決まっていない
依存する論理規則なし二重否定除去排中律(二重否定除去)

二つは無関係ではありません。PQP \Rightarrow Q を背理法で示すとは、PP かつ ¬Q\lnot Q を仮定して矛盾を導くことです。その矛盾として特に「¬P\lnot PPP」を選べば、それは ¬Q\lnot Q から ¬P\lnot P を導いたということ、つまり対偶証明にほかなりません。対偶証明は背理法の特殊な場合です。

逆に、背理法で書かれた証明の多くは対偶証明に書き直せます。書き直せるなら、そうしたほうが読みやすくなります。「矛盾が出ました」で終わる証明は、どの仮定がどこで効いたのかを読者が追いにくいからです。ゴールが最初から ¬P\lnot P と決まっている対偶証明のほうが、議論の行き先がはっきりします。

注意 6.3どこまでが古典論理に固有か

PP を仮定して矛盾を導き、¬P\lnot P を結論する」のは、否定という記号の意味そのものであり、直観主義論理でも認められます。古典論理に固有なのは、その裏返し、つまり「¬P\lnot P を仮定して矛盾を導き、PP を結論する」ほうです。ここで使う ¬¬PP\lnot\lnot P \Rightarrow P は、直観主義論理では証明できません。

この違いは「存在する」を主張するときに表面化します。「xx が存在しないと矛盾する」から「xx が存在する」を導く証明は、その xx を一つも作ってくれません。具体的な作り方まで与える証明を構成的証明と呼び、区別します。無限集合の大小を比べるカントールの対角線論法も、形の上では背理法ですが、実際には「与えられた列に入らない元を作る手続き」を与えている点で構成的です。詳しくは 濃度と無限 - 無限にも大小がある、とくに 定理 6.3[濃度と無限] を参照してください。

注意 6.4背理法で書かなくてよいものを背理法で書かない

「素数は無限に存在する」は背理法の例として紹介されることが多い命題です。背理法版はこうなります。素数が有限個 p1,,prp_1, \ldots, p_r しかないと仮定し、N=p1p2pr+1N = p_1 p_2 \cdots p_r + 1 を考えます。N2N \ge 2 なので 例 4.4 より NN は素因数 qq をもちます。仮定よりこの qq はどれかの pip_i に等しいはずです。しかし pip_i は積 p1prp_1 \cdots p_r を割り切るので、NNpip_i で割った余りは 11 であり、pip_iNN を割りません。矛盾です。

ところが、この議論は背理法を使わずにそのまま書けます。任意に有限個の素数 p1,,prp_1, \ldots, p_r を取ったとき、N=p1pr+1N = p_1 \cdots p_r + 1 の素因数 qq はどの pip_i とも異なります(同じ理由で pip_iNN を割らないからです)。つまり、どんな有限リストに対しても、そこに載っていない素数を実際に一つ作ることができます。ゆえに素数は無限個です。

こちらの書き方は、rr 個の素数から r+1r+1 個目を作る手続きを与えており、内容が多い分だけ有用です。ユークリッド『原論』第 IX 巻命題 20 の議論も、この直接的な形に近いものです。仮定を置いて矛盾を出すのは強力ですが、必要のないところで使うと情報を捨てることになります。

定義 7.1有理数と無理数

実数 xx有理数であるとは、整数 pp00 でない整数 qq を用いて x=p/qx = p/q と書けることをいう。有理数全体を Q\mathbb{Q} と書く。実数であって有理数でないものを無理数という。

定義 7.2偶数と奇数

整数 nn偶数であるとは、ある整数 mm を用いて n=2mn = 2m と書けることをいう。nn奇数であるとは、ある整数 mm を用いて n=2m+1n = 2m+1 と書けることをいう。

任意の整数は偶数か奇数のいずれか一方であり、両方であることはありません。前半は 22 による除法の定理(余りが 0011)から、後半は 2m=2m+12m = 2m'+1 から 2(mm)=12(m-m') = 1 となり、左辺が偶数で右辺が 22 で割り切れないことから従います。

補題 7.3既約分数表示の存在

任意の有理数 xx に対し、整数 pp と自然数 qq で、x=p/qx = p/q かつ gcd(p,q)=1\gcd(p, q) = 1 を満たすものが存在する。

証明(補題 7.3)

定義 7.1 より x=a/bx = a/baa は整数、bb00 でない整数)と書けます。b<0b < 0 ならば分子分母の符号を同時に変えて x=(a)/(b)x = (-a)/(-b) とすればよいので、はじめから b1b \ge 1、すなわち bNb \in \mathbb{N} としてよいとします。

集合

T={bN:ある整数 a が存在して x=a/b}T = \{\, b' \in \mathbb{N} : \text{ある整数 } a' \text{ が存在して } x = a'/b' \,\}

を考えます。bTb \in T なので TT \ne \emptyset です。整列性(公理 3.1) により TT は最小元 qq をもちます。qTq \in T なので、ある整数 ppx=p/qx = p/q と書けます。

この p,qp, qgcd(p,q)=1\gcd(p,q) = 1 を満たすことを示します。d=gcd(p,q)d = \gcd(p, q) とおき、d>1d > 1 と仮定します。p=dpp = d p', q=dqq = d q' を満たす整数 p,qp', q' が取れて、q=q/dq' = q/d は自然数であり 1q<q1 \le q' < q です(d>1d > 1 かつ q1q \ge 1 より)。また

pq=dpdq=pq=x\frac{p'}{q'} = \frac{dp'}{dq'} = \frac{p}{q} = x

なので qTq' \in T です。これは qqTT の最小元であることに反します。よって d=1d = 1 です。

なお、p/qp/q という表示は一意ではありません(1/2=2/4=3/6=1/2 = 2/4 = 3/6 = \cdots)。有理数を「整数の組を適切な同値関係で割ったもの」として定義する立場については 関係と同値関係 - 「同じ」とは何か、とくに 命題 6.1[関係と同値関係] を参照してください。上の補題は、その同値類の中に「分母が最小の代表元」が必ずあると言っています。

補題 7.4平方が偶数なら元も偶数

整数 nn について、n2n^2 が偶数ならば nn は偶数である。

証明(補題 7.4)

対偶「nn が奇数ならば n2n^2 は奇数である」を示します。命題 6.1 により、これでもとの主張が従います。

nn を奇数とすると、定義 7.2 よりある整数 mmn=2m+1n = 2m+1 と書けます。このとき

n2=(2m+1)2=4m2+4m+1=2(2m2+2m)+1.n^2 = (2m+1)^2 = 4m^2 + 4m + 1 = 2(2m^2 + 2m) + 1 .

2m2+2m2m^2 + 2m は整数なので、n2n^2定義 7.2 の意味で奇数です。

この補題を直接示そうとすると難儀します。「n2=2kn^2 = 2k」という等式から nn の形を取り出すには、素因数分解のような重い道具が要るからです。対偶を取ると、仮定される側が「n=2m+1n = 2m+1」という形の情報に変わり、あとは展開するだけで済みます。仮定と結論のうち、形の情報を持っているのがどちらかを見て、それを仮定側に回す——これが対偶証明を使う判断基準です。

定理 7.5平方根 2 の無理性

x2=2x^2 = 2 を満たす有理数 xx は存在しない。したがって、実数として 2\sqrt22>0\sqrt2 > 0 かつ (2)2=2(\sqrt2)^2 = 2 を満たす実数)が存在するならば、それは無理数である。

証明(定理 7.5)

x2=2x^2 = 2 を満たす有理数 xx が存在すると仮定します(背理法)。

補題 7.3 により、整数 pp と自然数 qq

x=pq,gcd(p,q)=1x = \frac{p}{q}, \qquad \gcd(p, q) = 1

を満たすものが取れます。両辺を 22 乗すると p2/q2=2p^2/q^2 = 2 であり、q20q^2 \ne 0 なので両辺に q2q^2 を掛けて

p2=2q2.p^2 = 2 q^2 .

この式を式 (A) と呼ぶことにします。(A) の右辺は 2×(整数)2 \times (\text{整数}) の形なので、定義 7.2 より p2p^2 は偶数です。補題 7.4 により pp は偶数であり、ある整数 rrp=2rp = 2r と書けます。

これを (A) に代入すると 4r2=2q24r^2 = 2q^2、両辺を 22 で割って

q2=2r2q^2 = 2 r^2

を得ます。右辺はやはり 2×(整数)2 \times (\text{整数}) の形なので q2q^2 は偶数です。ふたたび 補題 7.4 により qq も偶数です。

こうして ppqq はともに 22 で割り切れることになり、gcd(p,q)2\gcd(p, q) \ge 2 です。これは gcd(p,q)=1\gcd(p,q) = 1 に矛盾します。

したがって x2=2x^2 = 2 を満たす有理数は存在しません。

どこで何を使ったかを整理しておきます。

  • 「既約分数に取れる」ことは 補題 7.3、その根拠は 整列性(公理 3.1) です。
  • p2p^2 が偶数なら pp が偶数」は 補題 7.4、これは対偶証明でした。
  • 最後の一撃、既約性との衝突が背理法の部分です。

定理の主張を「2\sqrt2 は無理数である」ではなく「x2=2x^2 = 2 なる有理数は存在しない」の形で述べたのには理由があります。前者を主張するには、まず 2\sqrt2 という実数の存在(定理 5.6[数とは何か])を知っていなければなりません。その存在は実数の連続性(完備性、上限性質(公理 5.1)[数とは何か])に依存する、有理数だけの世界では言えない事実です。ここで証明したのは有理数の世界の中で完結する主張であり、実数の性質を一切使っていません。

例 7.6既約性を使わない証明

p2=2q2p^2 = 2q^2 を満たす自然数の組 (p,q)(p, q) が存在すると仮定します。そこで

U={pN:ある qN が存在して p2=2q2}U = \{\, p \in \mathbb{N} : \text{ある } q \in \mathbb{N} \text{ が存在して } p^2 = 2q^2 \,\}

とおくと UU \ne \emptyset です。整列性(公理 3.1) により UU は最小元 p0p_0 をもちます。p0p_0 に対応する q0Nq_0 \in \mathbb{N} を一つ取ると p02=2q02p_0^2 = 2q_0^2 です。

定理 7.5 の証明と同じ計算で、p0p_0 は偶数なので p0=2rp_0 = 2rrr は整数)と書け、代入して q02=2r2q_0^2 = 2r^2 を得ます。p01p_0 \ge 1p0=2rp_0 = 2r から r1r \ge 1、すなわち rNr \in \mathbb{N} です。したがって q0Uq_0 \in U です。

一方、q01q_0 \ge 1 より p02=2q02>q02p_0^2 = 2q_0^2 > q_0^2 であり、p0,q0p_0, q_0 はともに正なので p0>q0p_0 > q_0 です。q0Uq_0 \in U かつ q0<p0q_0 < p_0 は、p0p_0UU の最小元であることに反します。

よって p2=2q2p^2 = 2q^2 を満たす自然数の組は存在せず、とくに x2=2x^2 = 2 なる有理数もありません(x=p/qx = p/q とすれば p,qp, q の符号を調整して自然数の組が作れるからです)。

この形の議論を無限降下法といいます。「解があるとすれば、そこからより小さい解が作れる。しかし正の整数は無限に小さくなり続けられない」という論法で、フェルマーが好んで用いました。

注目してほしいのは、ここで使った道具が 整列性(公理 3.1) だけだという点です。整列性は 定理 3.2 の証明でも使われました。**数学的帰納法と無限降下法は、同じ「自然数は下に無限に続かない」という性質の表と裏です。**帰納法は下から積み上げ、降下法は上から降りてきて底がないことに矛盾する——向きが違うだけで、根は一つです。

系 7.7平方数でない自然数の平方根

自然数 nn が平方数でない(すなわち n=m2n = m^2 を満たす自然数 mm が存在しない)ならば、x2=nx^2 = n を満たす有理数 xx は存在しない。

証明(系 7.7)

素因数分解の一意性(算術の基本定理)を使います。分解の存在は 例 4.4 で完全帰納法により示しました。一意性の証明は本記事では扱いませんが、参考文献の高木『初等整数論講義』第 1 章にあります。

素数 \ell00 でない整数 aa に対し、e\ell^{e}aa を割り切るような最大の e0e \ge 0v(a)v_\ell(a) と書きます。素因数分解の一意性から、00 でない整数 a,ba, b に対して

v(ab)=v(a)+v(b)v_\ell(ab) = v_\ell(a) + v_\ell(b)

が成り立ちます。とくに v(a2)=2v(a)v_\ell(a^2) = 2 v_\ell(a) は偶数です。

さて、x2=nx^2 = n を満たす有理数 xx が存在したとします。x=p/qx = p/qpp は整数、qq00 でない整数)と書くと p2=nq2p^2 = n q^2 です。n1n \ge 1 かつ q0q \ne 0 なので p0p \ne 0 です。任意の素数 \ell について両辺の vv_\ell を取ると

2v(p)=v(n)+2v(q),すなわちv(n)=2(v(p)v(q)).2 v_\ell(p) = v_\ell(n) + 2 v_\ell(q), \qquad \text{すなわち} \qquad v_\ell(n) = 2\bigl(v_\ell(p) - v_\ell(q)\bigr) .

したがって v(n)v_\ell(n) はすべての素数 \ell について偶数です。そこで m=v(n)/2m = \prod_{\ell} \ell^{\,v_\ell(n)/2}(積は v(n)>0v_\ell(n) > 0 なる有限個の素数にわたる)とおくと、指数がすべて整数なので mm は自然数であり、

m2=v(n)=nm^2 = \prod_{\ell} \ell^{\,v_\ell(n)} = n

となって nn は平方数です。対偶を取れば主張を得ます。

n=2,3,5,6,7,8,10,n = 2, 3, 5, 6, 7, 8, 10, \ldots はいずれも平方数ではないので、これらの平方根はすべて無理数です。逆に n=4n = 4 では x=2x = 2 という有理数の解があります。§7.2 の証明を n=4n = 4 に対してまねしようとすると、補題 7.4 にあたる主張が偽になって議論が止まります(演習 8.3 の (3) を参照してください)。

演習 8.1

a,ba, b を実数とする。a+b2a + b \ge 2 ならば、a1a \ge 1 または b1b \ge 1 であることを示せ。

解答

対偶を示します。「a1a \ge 1 または b1b \ge 1」の否定は、ド・モルガンの法則(補題 4.3)[数学の国語] により「a<1a < 1 かつ b<1b < 1」です。したがって示すべき対偶は

a<1a < 1 かつ b<1b < 1 ならば a+b<2a + b < 2

です。a<1a < 1 の両辺に bb を足して a+b<1+ba + b < 1 + b、また b<1b < 1 の両辺に 11 を足して 1+b<21 + b < 2 です。不等号の推移律より a+b<2a + b < 2 が従います。

命題 6.1 により、もとの主張が成り立ちます。

この問題を直接証明しようとすると、「a+b2a + b \ge 2」から aabb のどちらが 11 以上かを選ばねばならず、場合分けが必要になります。否定を取ると結論の「または」が仮定の「かつ」に変わり、aabb の両方の情報を同時に使えるようになります。結論が「または」の形をしているときは対偶を疑ってください。

演習 8.2標準

すべての nNn \in \mathbb{N} に対して

k=1n1k221n\sum_{k=1}^{n} \frac{1}{k^2} \le 2 - \frac{1}{n}

が成り立つことを数学的帰納法で示せ。また、同じ方法で k=1n1/k22\sum_{k=1}^{n} 1/k^2 \le 2 を直接示そうとするとうまくいかない理由を説明せよ。

解答

基底ステップ。 n=1n = 1 のとき、左辺は 11、右辺は 21=12 - 1 = 1 です。等号が成り立つので主張は真です。

帰納ステップ。 k=1n1/k221/n\sum_{k=1}^{n} 1/k^2 \le 2 - 1/n を仮定します。両辺に 1/(n+1)21/(n+1)^2 を加えて

k=1n+11k221n+1(n+1)2\sum_{k=1}^{n+1} \frac{1}{k^2} \le 2 - \frac{1}{n} + \frac{1}{(n+1)^2}

を得ます。ここで (n+1)2=(n+1)(n+1)(n+1)n(n+1)^2 = (n+1)(n+1) \ge (n+1) nn+1nn + 1 \ge n かつ n+1>0n+1 > 0 より)なので

1(n+1)21n(n+1)=1n1n+1\frac{1}{(n+1)^2} \le \frac{1}{n(n+1)} = \frac{1}{n} - \frac{1}{n+1}

です(最後の等号は通分すれば (n+1)nn(n+1)=1n(n+1)\frac{(n+1) - n}{n(n+1)} = \frac{1}{n(n+1)} で確かめられます)。これを代入して

k=1n+11k221n+1n1n+1=21n+1\sum_{k=1}^{n+1} \frac{1}{k^2} \le 2 - \frac{1}{n} + \frac{1}{n} - \frac{1}{n+1} = 2 - \frac{1}{n+1}

となり、n+1n+1 の場合の主張が得られました。定理 3.2 より、すべての nn で成立します。

なぜ 2\le 2 では回らないか。 P(n)P'(n) を「k=1n1/k22\sum_{k=1}^n 1/k^2 \le 2」とすると、P(n)P'(n) を仮定して得られるのは

k=1n+11k22+1(n+1)2\sum_{k=1}^{n+1} \frac{1}{k^2} \le 2 + \frac{1}{(n+1)^2}

だけで、右辺は 22 を超えています。P(n+1)P'(n+1) は結論できません。仮定が弱すぎて、加えた分を吸収する余裕がないのです。

21/n2 - 1/n という形は 22 より強い主張ですが、そのぶん帰納法の仮定も強くなり、1/(n+1)21/(n+1)^2 を吸収する「のりしろ」1/n1/(n+1)1/n - 1/(n+1) を持っています。より強い主張のほうが帰納法では証明しやすいことがある——これを帰納法の仮定を強めるといい、帰納法を使う際の基本的な技術です。

演習 8.3標準

(1) 整数 nn について、「n2n^233 の倍数ならば nn33 の倍数」を対偶を用いて示せ。 (2) (1) を使って、x2=3x^2 = 3 を満たす有理数 xx が存在しないことを示せ。 (3) 同じ論法を x2=4x^2 = 4 に適用しようとすると、どこで破れるかを述べよ。

解答

(1) 対偶「nn33 の倍数でないならば n2n^233 の倍数でない」を示します。33 による除法の定理より、整数 nn はある整数 mm を用いて n=3mn = 3m, n=3m+1n = 3m+1, n=3m+2n = 3m+2 のいずれか一つの形に書けます。33 の倍数でないのは後の 2 つの場合です。

n=3m+1n = 3m+1 のとき

n2=9m2+6m+1=3(3m2+2m)+1n^2 = 9m^2 + 6m + 1 = 3(3m^2 + 2m) + 1

となり、33 で割った余りは 11 です。

n=3m+2n = 3m+2 のとき

n2=9m2+12m+4=3(3m2+4m+1)+1n^2 = 9m^2 + 12m + 4 = 3(3m^2 + 4m + 1) + 1

となり、やはり余りは 11 です。

いずれの場合も n2n^233 の倍数ではありません。命題 6.1 よりもとの主張が従います。

(2) x2=3x^2 = 3 なる有理数 xx が存在すると仮定します。補題 7.3 により、整数 pp と自然数 qqx=p/qx = p/q かつ gcd(p,q)=1\gcd(p,q) = 1 なるものが取れます。両辺を 22 乗して q2q^2 を掛けると p2=3q2p^2 = 3q^2 です。

右辺は 33 の倍数なので p2p^233 の倍数、(1) より pp33 の倍数で、p=3rp = 3rrr は整数)と書けます。代入して 9r2=3q29r^2 = 3q^2、両辺を 33 で割って q2=3r2q^2 = 3r^2 を得ます。右辺は 33 の倍数なので q2q^233 の倍数、再び (1) より qq33 の倍数です。

すると gcd(p,q)3\gcd(p,q) \ge 3 となり、gcd(p,q)=1\gcd(p,q) = 1 に矛盾します。よってそのような有理数は存在しません。

(3) (1) にあたる主張は「n2n^244 の倍数ならば nn44 の倍数」ですが、これは偽です。n=2n = 2 が反例で、n2=4n^2 = 444 の倍数ですが n=2n = 244 の倍数ではありません。したがって p2=4q2p^2 = 4q^2 から「pp44 の倍数」を導く段階で議論が止まります。

止まって当然です。x=2x = 2x2=4x^2 = 4 を満たす有理数なので、示そうとしている結論自体が偽だからです。系 7.7 の言葉でいえば、4=224 = 2^2 は平方数だということです。証明が通らないときは、まず結論が本当に正しいかを疑ってください。

演習 8.4

log23\log_2 3 が無理数であることを示せ。ここで log23\log_2 32x=32^x = 3 を満たす実数 xx である。

解答

x=log23x = \log_2 3 とおきます。20=1<32^0 = 1 < 3 であり t2tt \mapsto 2^t は狭義単調増加なので x>0x > 0 です。

xx が有理数だと仮定します(背理法)。x>0x > 0 なので、定義 7.1 の表示で分子分母の符号をそろえれば、自然数 p,qp, q を用いて x=p/qx = p/q と書けます。すると 2p/q=32^{p/q} = 3 であり、両辺を qq 乗して

2p=3q2^p = 3^q

を得ます。

左辺について。p1p \ge 1 なので 2p=22p12^p = 2 \cdot 2^{p-1} であり、2p12^{p-1} は整数ですから 2p2^p は偶数です。

右辺について。3q3^q が奇数であることを qq に関する帰納法で示します。q=1q = 1 のとき 31=3=21+13^1 = 3 = 2\cdot 1 + 1 は奇数です。3q3^q が奇数、つまり 3q=2m+13^q = 2m+1mm は整数)と仮定すると

3q+1=3(2m+1)=6m+3=2(3m+1)+13^{q+1} = 3(2m+1) = 6m + 3 = 2(3m+1) + 1

となり奇数です。定理 3.2 よりすべての qNq \in \mathbb{N}3q3^q は奇数です。

こうして同じ整数 2p=3q2^p = 3^q が偶数かつ奇数になりますが、§7.1 で見たとおりそのような整数は存在しません。矛盾です。

したがって log23\log_2 3 は無理数です。

この証明は素因数分解の一意性を使っていない点が特徴です。2p=3q2^p = 3^q の両辺を偶奇だけで区別できたので、それ以上の道具が要りませんでした。使う道具は少ないほどよく、どこまで軽い道具で足りるかを見積もるのも証明の技術のうちです。

  • 松坂和夫『集合・位相入門』岩波書店、1968 — 自然数の構成、ペアノの公理、数学的帰納法の扱い。
  • 高木貞治『初等整数論講義 第 2 版』共立出版、1971 — 第 1 章(整数の除法、素数、素因数分解の一意性)。
  • G. ポリア『いかにして問題をとくか』柿内賢信訳、丸善、1954 — 「帰納と数学的帰納法」の項。帰納法を使う前の「推測の作り方」について。
  • G. H. Hardy and E. M. Wright, An Introduction to the Theory of Numbers, Oxford University Press — Chapter IV「Irrational Numbers」。平方根の無理性の各種証明。
  • ユークリッド『ユークリッド原論』中村幸四郎・寺阪英孝・伊東俊太郎・池田美恵 訳・解説、共立出版 — 第 IX 巻 命題 20(素数が無限に存在すること)。
  • 前原昭二『数学基礎論入門』朝倉書店、1977 — 古典論理と直観主義論理の違い、二重否定除去と排中律の位置づけ。

この記事の誤りを報告する ・運営: 夢現技研合同会社料金プラン利用条件特定商取引法に基づく表記

© 2026 夢現技研合同会社 ・本文の LLM への入力は自由です。コード例は MIT ライセンスです。