§A3.10数学的帰納法の論理構造

最終更新

数学的帰納法では、基底段階と帰納段階の二つから、なぜすべての自然数についての主張が従うのでしょうか。本記事では、自然数nnについての述語P(n)P(n)を対象として二つの段階の役割を分け、帰納法の原理が自然数の性質に基づくことを最小数原理との関係から確かめ、強い帰納法との違いまで整理します。

1 帰納法の原理

この記事では、自然数は1,2,3,…1, 2, 3, \dotsを指すものとし、00を含めません。00を含める流儀もあり、その場合は以下の基底段階がP(0)P(0)になります。

定理 1.1 (数学的帰納法). 自然数nnについての述語PPが、次の二つを満たすとする。

  1. P(1)P(1)が真である(基底段階)。
  2. すべての自然数kkについてP(k)⇒P(k+1)P(k) \Rightarrow P(k+1)が真である(帰納段階)。

このとき、すべての自然数nnについてP(n)P(n)が真である。

基底段階では、n=1n=1という一つの場合についてP(1)P(1)が真であることを示します。帰納段階では、個々のP(k)P(k)が真であることではなく、含意P(k)⇒P(k+1)P(k)\Rightarrow P(k+1)がすべての自然数kkについて真であることを示します。したがって、帰納段階だけでは、真であるP(k)P(k)は一つも保証されません。

二つの段階を合わせると、P(1)P(1)にP(1)⇒P(2)P(1)\Rightarrow P(2)を適用してP(2)P(2)を得ます。さらにP(2)⇒P(3)P(2)\Rightarrow P(3)を適用するとP(3)P(3)を得ます。帰納法の原理により、基底段階のP(1)P(1)と、すべての自然数kkについての含意P(k)⇒P(k+1)P(k)\Rightarrow P(k+1)から、すべての自然数nnについてP(n)P(n)が真であると結論することができます。

例 1.2.P(n)P(n)を「n=n+1n=n+1」とする。P(k)P(k)、すなわちk=k+1k=k+1を仮定すると、両辺に11を加えてk+1=k+2k+1=k+2を得る。したがって、すべての自然数kkについてP(k)⇒P(k+1)P(k)\Rightarrow P(k+1)は真である。一方、P(1)P(1)は1=21=2という偽の命題である。実際、どの自然数nnについてもP(n)P(n)は偽である。よって、帰納段階が真であっても、基底段階が無ければすべてのP(n)P(n)を結論することはできない。

問題 1.3. 自然数についての述語PPが、P(1)P(1)とP(2)P(2)が真であり、すべての自然数kkについてP(k)⇒P(k+2)P(k)\Rightarrow P(k+2)が真であるとする。すべての自然数nnについてP(n)P(n)が真であることを示せ。また、P(2)P(2)が真であるという仮定を除くと結論が成り立たない例を挙げよ。

解答.

自然数jjについて、Q(j)Q(j)をP(2j−1)P(2j-1)、R(j)R(j)をP(2j)P(2j)と定める。Q(1)=P(1)Q(1)=P(1)とR(1)=P(2)R(1)=P(2)はともに真である。自然数jjを任意に取る。仮定の含意をk=2j−1k=2j-1に適用するとQ(j)⇒Q(j+1)Q(j)\Rightarrow Q(j+1)を得る。同じ含意をk=2jk=2jに適用するとR(j)⇒R(j+1)R(j)\Rightarrow R(j+1)を得る。定理 1.1をQQとRRにそれぞれ適用すれば、すべての自然数jjについてQ(j)Q(j)とR(j)R(j)は真である。どの自然数も2j−12j-1または2j2jの形に表すことができるので、すべての自然数nnについてP(n)P(n)が真となる。

P(2)P(2)の仮定を除いた場合は、P(n)P(n)を「nnは奇数である」とする。P(1)P(1)は真であり、奇数に22を加えても奇数なので、すべての自然数kkについてP(k)⇒P(k+2)P(k)\Rightarrow P(k+2)は真である。しかしP(2)P(2)は偽である。▨

2 帰納法の根拠と最小数原理

帰納法が正しいことは、論理の規則だけからは導かれません。その根拠は、自然数が「11から始まり、11ずつ増え、すべての自然数がこの積み上げによって得られる」という構造をもつことにあります。この構造を公理として書き下したものがペアノの公理であり、帰納法の原理はその一つとして置かれます。

同じ性質を別の形で述べたものが、次の最小数原理です。

定理 2.1. 自然数について、11が最小であること、11より大きい自然数nnがある自然数mmを用いてn=m+1n=m+1と表されること、および任意の自然数k,nk,nについてk≤n+1k\le n+1かつk≠n+1k\ne n+1ならばk≤nk\le nであることを認める。このとき、数学的帰納法の原理と「自然数からなる空でない集合には最小元がある」という最小数原理は同値である。

証明 (帰納法の原理の導出). 最小数原理を仮定する。自然数nnについての述語PPが定理 1.1 (1)と定理 1.1 (2)を満たすとし、

S={ n∈N≥1∣P(n) は偽 }S=\{\,n\in\NN\mid P(n)\text{ は偽}\,\}

と置く。S≠∅S\ne\varnothingと仮定すると、最小数原理によりSSは最小元n0n_0をもつ。

n0=1n_0=1ならば、n0∈Sn_0\in SによりP(1)P(1)は偽であるが、基底段階によりP(1)P(1)は真である。n0>1n_0>1ならば、n0=m+1n_0=m+1を満たす自然数mmがある。m<n0m<n_0とn0n_0の最小性からm∉Sm\notin S、すなわちP(m)P(m)は真である。帰納段階をk=mk=mに適用するとP(m+1)=P(n0)P(m+1)=P(n_0)は真となり、n0∈Sn_0\in SによってP(n0)P(n_0)が偽であることと両立しない。どちらの場合も仮定S≠∅S\ne\varnothingに反するので、S=∅S=\varnothingである。よって、すべての自然数nnについてP(n)P(n)は真である。▨

証明 (最小数原理の導出). 帰納法の原理を仮定する。SSを自然数からなる集合とし、SSは最小元をもたないと仮定する。P(n)P(n)を「11からnnまでのどの自然数もSSに属さない」と定める。

1∈S1\in Sならば、11が最小の自然数であることから11はSSの最小元となる。これはSSが最小元をもたないという仮定に反するので、1∉S1\notin SでありP(1)P(1)は真である。

自然数kkを任意にとり、P(k)P(k)を仮定する。k+1∈Sk+1\in Sと仮定する。k+1k+1より小さい元s∈Ss\in Sがあるならば、s≤k+1s\le k+1かつs≠k+1s\ne k+1であるからs≤ks\le kとなり、P(k)P(k)に反する。したがってSSにk+1k+1より小さい元は存在せず、k+1k+1はSSの最小元となる。これはSSが最小元をもたないという仮定に反するので、k+1∉Sk+1\notin SでありP(k+1)P(k+1)は真である。

定理 1.1により、すべての自然数nnについてP(n)P(n)は真である。したがってS=∅S=\varnothingである。「SSが最小元をもたないならばSSは空集合である」という含意の対偶は、「SSが空でないならばSSは最小元をもつ」である。§A3.6 定理 1.2により、空でない自然数の集合は最小元をもつ。▨

帰納法の原理と最小数原理が同値であることから、帰納法と、最小の反例を取る背理法とが同じ内容であることが分かります。「すべてのnnでP(n)P(n)」を示すために、PPが偽になる最小の自然数を取って矛盾を導く議論は、帰納法の別の書き方です。

3 強い帰納法

帰納段階でP(k)P(k)だけを仮定するのではなく、P(1)P(1)からP(k)P(k)までのすべてを仮定してよい形の帰納法があります。

定理 3.1 (強い帰納法). 自然数nnについての述語PPが、P(1)P(1)が真であり、かつすべての自然数kkについて、P(1),P(2),…,P(k)P(1),P(2),\ldots,P(k)がすべて真であることからP(k+1)P(k+1)が従うとする。このとき、すべての自然数nnについてP(n)P(n)が真である。

証明.Q(k)Q(k)を「1≤j≤k1\le j\le kを満たすすべての自然数jjについてP(j)P(j)が真である」と定める。Q(1)Q(1)はP(1)P(1)と同値であり、仮定により真である。自然数kkを任意にとり、Q(k)Q(k)を仮定する。Q(k)Q(k)からP(1),P(2),…,P(k)P(1),P(2),\ldots,P(k)はすべて真であるので、強い帰納法の帰納段階からP(k+1)P(k+1)が従う。よって、1≤j≤k+11\le j\le k+1を満たすすべての自然数jjについてP(j)P(j)が真であり、Q(k+1)Q(k+1)が成り立つ。定理 1.1をQQに適用すると、すべての自然数kkについてQ(k)Q(k)が真である。したがって、すべての自然数nnについてP(n)P(n)が真である。▨

強い帰納法は通常の帰納法から導かれるので、証明することができる主張の範囲は両者で変わりません。

例 3.2. 和の公式

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

は通常の帰納法で示される。n=1n=1のときは両辺が11である。n=kn=kで公式が成り立つと仮定すると、

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

となる。P(k+1)P(k+1)を示すためにP(k)P(k)だけを用いるので、通常の帰納法で足りる。

R(j)R(j)を「自然数j+1j+1は素数の積として表される」とする。R(1)R(1)は22が素数であることから真である。R(1),R(2),…,R(k)R(1),R(2),\ldots,R(k)がすべて真であると仮定する。k+2k+2が素数ならばR(k+1)R(k+1)は真である。k+2k+2が合成数ならばk+2=abk+2=ab、2≤a,b≤k+12\le a,b\le k+1を満たす自然数a,ba,bがある。1≤a−1,b−1≤k1\le a-1,b-1\le kであるから、帰納法の仮定によりaaとbbはそれぞれ素数の積として表され、k+2k+2も素数の積として表される。よってR(k+1)R(k+1)は真であり、強い帰納法によりすべての自然数jjについてR(j)R(j)が真である。したがって、22以上のすべての自然数は素数の積として表される。因数a,ba,bは事前に決まらないため、R(k)R(k)だけでなくすべての既知の場合を用いる。

ak+1a_{k+1}がaka_kとak−1a_{k-1}の両方から定まる漸化式について、ak+1a_{k+1}の性質を示すときにaka_kとak−1a_{k-1}の性質をともに用いる場合がある。この場合にはP(k)P(k)とP(k−1)P(k-1)が必要なので、それまでのすべての場合を仮定する強い帰納法を用いることができる。

4 例題

レベル2 — 数学的帰納法の論理構造

数学的帰納法の論理構造についての問題である。偽証明にはどこに誤りがあるかを指摘し、構造を問うものにはその論理式や手順を答えよ。

解法の型帰納法が要求するのは P(1)∧\land∀k\forall k(P(k)⇒\RightarrowP(k+1)) の両方。基底が偽ならステップが正しくても何も従わず、ステップがある k で破れれば連鎖はそこで切れる

例 4.1. 次は数学的帰納法による「証明」だが、誤りがある。どこが誤りかを指摘せよ。

主張: すべての自然数 n について n=n+1 。「証明」: P(k) すなわち k=k+1 を仮定する。両辺に 1 を足すとk+1=k+2 、これは P(k+1) である。よって帰納法よりすべての n で成立。\begin{array}{l} \text{主張: すべての自然数 } n \ \text{について } n = n + 1 \ \text{。} \\ \text{「証明」: } P(k) \ \text{すなわち } k = k + 1 \ \text{を仮定する。両辺に } 1 \ \text{を足すと} \\ \quad k + 1 = k + 2 \ \text{、これは } P(k+1) \ \text{である。よって帰納法よりすべての } n \ \text{で成立。} \end{array}

答 誤り: 基底ケースP(1) (1=2)P(1) \ (1 = 2)を確認していない(実際に偽)。帰納ステップだけでは何も従わない。

注意 帰納ステップ「P(k)⇒\RightarrowP(k+1)」自体はこの偽証明でも正しく示されている。しかし帰納法が要求するのは P(1)∧∀k\land \forall k(P(k)⇒\RightarrowP(k+1)) の両方。最初の1枚が倒れていなければ、ドミノがどれだけ連鎖する仕組みでも1枚も倒れない。基底の確認は飾りではない。

例 4.2. 次は数学的帰納法による「証明」だが、誤りがある。どこが誤りかを指摘せよ。

数列 a1=1, a2=3, an+2=an+1+an について an<2n を示したい。「証明」: P(k) すなわち ak<2k を仮定すると ak+1=ak+ak−1<2k+ak−1 。\begin{array}{l} \text{数列 } a_1 = 1, \ a_2 = 3, \ a_{n+2} = a_{n+1} + a_n \ \text{について } a_n < 2^n \ \text{を示したい。} \\ \text{「証明」: } P(k) \ \text{すなわち } a_k < 2^k \ \text{を仮定すると } a_{k+1} = a_k + a_{k-1} < 2^k + a_{k-1} \ \text{。} \end{array}

答 誤り:ak−1<2k−1a_{k-1} < 2^{k-1}を使いたいのに、仮定はP(k)P(k)だけでP(k−1)P(k-1)を与えない。強い帰納法(またはP(k)∧P(k+1)P(k) \land P(k+1)を命題に取る)が必要。

注意 漸化式が2つ前まで遡るとき、通常の帰納法の仮定(直前の1つだけ)では足りない。強い帰納法を使うか、示す命題を Q(n)==「P(n) かつ P(n+1)」と組にして通常の帰納法を回す。どちらも同じことで、要は「ステップで実際に使う仮定を、仮定として宣言しておく」ことが大切。

例 4.3. 数学的帰納法の論理構造について、次の問いに答えよ。

「すべての自然数 n について P(n)」の否定を書き、最小反例法の第一歩を述べよ。\text{「すべての自然数 } n \ \text{について } P(n) \text{」の否定を書き、最小反例法の第一歩を述べよ。}

答¬∀n P(n) ≡ ∃n ¬P(n)\lnot \forall n \ P(n) \ \equiv \ \exists n \ \lnot P(n)。このnnたちの中から最小のn0n_0を取る。

注意 全称の否定は存在。反例が存在するなら、最小数原理により最小の反例n0n_{0}が取れる。このn0n_{0}について「n0n_{0}より小さいところでは P が成り立つ」という強い情報が無料で手に入るのが最小反例法の旨み。これは強い帰納法の言い換えでもある。

例 4.4. 数学的帰納法の論理構造について、次の問いに答えよ。

強い帰納法の帰納ステップを論理式で書き、通常の帰納法との違いを述べよ。\text{強い帰納法の帰納ステップを論理式で書き、通常の帰納法との違いを述べよ。}

答∀k ((P(1)∧P(2)∧⋯∧P(k))⇒P(k+1))\forall k \ \Bigl( \bigl(P(1) \land P(2) \land \cdots \land P(k)\bigr) \Rightarrow P(k+1) \Bigr)

注意 通常の帰納法が仮定するのは直前の P(k) だけだが、強い帰納法は P(1) から P(k) までを全部仮定してよい。仮定が強いぶん使いやすく、素因数分解の存在や2つ前まで遡る漸化式で必要になる。論理的な強さは通常の帰納法と同じで、Q(k)==P(1)∧\land…∧\landP(k) に通常の帰納法を適用すれば導ける。

例 4.5. 次は数学的帰納法による「証明」だが、誤りがある。どこが誤りかを指摘せよ。

主張: すべての自然数 n について 1+2+⋯+n=n2+n+22 。「証明」: n=k で成立を仮定すると1+⋯+k+(k+1)=k2+k+22+(k+1)=k2+3k+42=(k+1)2+(k+1)+22となり P(k+1) が従う。\begin{array}{l} \text{主張: すべての自然数 } n \ \text{について } 1 + 2 + \cdots + n = \dfrac{n^2 + n + 2}{2} \ \text{。} \\ \text{「証明」: } n = k \ \text{で成立を仮定すると} \\ \quad 1 + \cdots + k + (k+1) = \dfrac{k^2 + k + 2}{2} + (k+1) = \dfrac{k^2 + 3k + 4}{2} = \dfrac{(k+1)^2 + (k+1) + 2}{2} \\ \quad \text{となり } P(k+1) \ \text{が従う。} \end{array}

答 誤り: 基底が偽。n=1n = 1で左辺は11、右辺は1+1+22=2\dfrac{1 + 1 + 2}{2} = 2で一致しない。

注意 帰納ステップの計算は完全に正しい(実際 (k²+3k+4)/2==((k+1)²+(k+1)+2)/2)。それでも主張は偽である。正しい公式は n(n+1)/2 で、この式は常に 1 だけ大きい。「ステップが通る」ことと「主張が真」は別物で、基底が偽なら連鎖は始まらない。ステップだけ検算して安心するのは危険。

例 4.6. 次は数学的帰納法による「証明」だが、誤りがある。どこが誤りかを指摘せよ。

ある学生の主張: 「帰納法の仮定で P(k) を仮定してよいのだから、P(k) はすでに真だと分かっている。よって帰納ステップでは P(k) を証明したことになる。」\begin{array}{l} \text{ある学生の主張: 「帰納法の仮定で } P(k) \ \text{を仮定してよいのだから、} \\ \quad P(k) \ \text{はすでに真だと分かっている。よって帰納ステップでは } P(k) \ \text{を証明したことになる。」} \end{array}

答 誤り: 帰納ステップで示すのは含意P(k)⇒P(k+1)P(k) \Rightarrow P(k+1)であって、P(k)P(k)そのものではない。

注意 帰納ステップは「もし P(k) が真なら P(k+1) も真」という含意を示す作業であり、P(k) が実際に真だと主張しているのではない。P(k) が真であることは、基底 P(1) から含意を k−1 回たどってはじめて言える。含意を示す、という構造を取り違えると「示すべきことを仮定している(論点先取)」という誤解に陥る。

例 4.7. 数学的帰納法の論理構造について、次の問いに答えよ。

「すべての自然数 n について P(n)」を数学的帰納法で示すとき、示すべき2つの命題を論理式で書け。\text{「すべての自然数 } n \ \text{について } P(n) \text{」を数学的帰納法で示すとき、示すべき2つの命題を論理式で書け。}

答P(1) ∧ ∀k (P(k)⇒P(k+1))P(1) \ \land \ \forall k \ \bigl(P(k) \Rightarrow P(k+1)\bigr)

注意 基底 P(1) と、帰納ステップ∀k\forall k(P(k)⇒\RightarrowP(k+1))。この2つから∀n\forall nP(n) が従う、というのが帰納法の原理。無限個の主張∀n\forall nP(n) が、2つの有限な確認に還元されるのが要点。どちらか一方だけでは何も従わない。

例 4.8. 次は数学的帰納法による「証明」だが、誤りがある。どこが誤りかを指摘せよ。

主張: 2 以上のすべての整数は素因数分解をもつ。「証明」: P(k) (k が素因数分解をもつ)を仮定して P(k+1) を示す。k+1 が素数なら明らか。合成数なら k+1=ab (1<a≤b<k+1) と書けるので、仮定より a,b の分解を掛ければよい。\begin{array}{l} \text{主張: } 2 \ \text{以上のすべての整数は素因数分解をもつ。} \\ \text{「証明」: } P(k) \ \text{(} k \ \text{が素因数分解をもつ)を仮定して } P(k+1) \ \text{を示す。} \\ \quad k+1 \ \text{が素数なら明らか。合成数なら } k+1 = ab \ (1 < a \le b < k+1) \ \text{と書けるので、} \\ \quad \text{仮定より } a, b \ \text{の分解を掛ければよい。} \end{array}

答 誤り: 仮定しているのはP(k)P(k)だけなのに、kkとは限らないa,b (a,b<k+1)a, b \ (a, b < k+1)についてP(a),P(b)P(a), P(b)を使っている。強い帰納法が必要。

注意 通常の帰納法の仮定は「直前の P(k)」しか与えない。しかし k+1==ab の a, b は k より小さい任意の数であって、k とは限らない。正しくは強い帰納法(P(2)∧\land…∧\landP(k) をすべて仮定して P(k+1) を示す)を使う。「直前だけでは足りず、それまで全部を使いたい」場面が強い帰納法の出番。なお強い帰納法は通常の帰納法と論理的な強さは同じ(Q(k)==P(2)∧\land…∧\landP(k) に通常の帰納法を適用すればよい)。

例 4.9. 数学的帰納法の論理構造について、次の問いに答えよ。

最小数原理(自然数の空でない部分集合には最小元がある)から数学的帰納法を導くとき、どんな集合の最小元を取るか。\text{最小数原理(自然数の空でない部分集合には最小元がある)から数学的帰納法を導くとき、どんな集合の最小元を取るか。}

答S={n∣P(n)S = \{ n \mid P(n)が偽}\}(反例の集合)の最小元n0n_0を取る。

注意 基底 P(1) と帰納ステップを仮定して S≠\ne∅ とすると、最小数原理より S に最小元n0n_{0}がある。n0=n_{0} =1 なら基底に矛盾。n0n_{0}> 1 なら最小性からP(n0P(n_{0}− 1) は真、帰納ステップよりP(n0)P(n_{0})も真となりn0∈n_{0} \inS に矛盾。よって S==∅、すなわち∀n\forall nP(n)。帰納法と「最小の反例を取る背理法」が地続きであることが見える。

例 4.10. 次は数学的帰納法による「証明」だが、誤りがある。どこが誤りかを指摘せよ。

主張: どんな n 頭の馬の集まりも、すべて同じ色である。「証明」: n=1 では明らか。n=k で成立を仮定し、k+1 頭を考える。最初の k 頭は同じ色、最後の k 頭も同じ色。重なりの馬を通じてすべて同じ色。よって k+1 頭も同じ色。\begin{array}{l} \text{主張: どんな } n \ \text{頭の馬の集まりも、すべて同じ色である。} \\ \text{「証明」: } n = 1 \ \text{では明らか。} n = k \ \text{で成立を仮定し、} k+1 \ \text{頭を考える。} \\ \quad \text{最初の } k \ \text{頭は同じ色、最後の } k \ \text{頭も同じ色。重なりの馬を通じて} \\ \quad \text{すべて同じ色。よって } k+1 \ \text{頭も同じ色。} \end{array}

答 誤り:k=1k = 1のとき(11頭から22頭へのステップ)、最初の11頭と最後の11頭は重ならず、色を橋渡しできない。

注意 有名な偽証明。帰納ステップの議論は「最初の k 頭」と「最後の k 頭」に共通の馬がいることを暗に使っているが、それが成り立つのは k≥\ge2 のときだけ。k==1 のとき 2 頭は互いに素な2つの1頭集合になり、色が結び付かない。基底 n==1 は正しく、ステップも k≥\ge2 では正しいのに、ちょうど 1→\to2 の一箇所だけ切れているため連鎖が始まらない。帰納ステップは「すべての k」で成り立つことを確認しなければならない。

5 演習

レベル2 — 数学的帰納法の論理構造

数学的帰納法の論理構造についての問題である。偽証明にはどこに誤りがあるかを指摘し、構造を問うものにはその論理式や手順を答えよ。

解法の型帰納法が要求するのは P(1)∧\land∀k\forall k(P(k)⇒\RightarrowP(k+1)) の両方。基底が偽ならステップが正しくても何も従わず、ステップがある k で破れれば連鎖はそこで切れる

問題 5.1. 次は数学的帰納法による「証明」だが、誤りがある。どこが誤りかを指摘せよ。

主張: どんな n 頭の馬の集まりも、すべて同じ色である。「証明」: n=1 では明らか。n=k で成立を仮定し、k+1 頭を考える。最初の k 頭は同じ色、最後の k 頭も同じ色。重なりの馬を通じてすべて同じ色。よって k+1 頭も同じ色。\begin{array}{l} \text{主張: どんな } n \ \text{頭の馬の集まりも、すべて同じ色である。} \\ \text{「証明」: } n = 1 \ \text{では明らか。} n = k \ \text{で成立を仮定し、} k+1 \ \text{頭を考える。} \\ \quad \text{最初の } k \ \text{頭は同じ色、最後の } k \ \text{頭も同じ色。重なりの馬を通じて} \\ \quad \text{すべて同じ色。よって } k+1 \ \text{頭も同じ色。} \end{array}
解答.

答 誤り:k=1k = 1のとき(11頭から22頭へのステップ)、最初の11頭と最後の11頭は重ならず、色を橋渡しできない。

注意 有名な偽証明。帰納ステップの議論は「最初の k 頭」と「最後の k 頭」に共通の馬がいることを暗に使っているが、それが成り立つのは k≥\ge2 のときだけ。k==1 のとき 2 頭は互いに素な2つの1頭集合になり、色が結び付かない。基底 n==1 は正しく、ステップも k≥\ge2 では正しいのに、ちょうど 1→\to2 の一箇所だけ切れているため連鎖が始まらない。帰納ステップは「すべての k」で成り立つことを確認しなければならない。▨

問題 5.2. 数学的帰納法の論理構造について、次の問いに答えよ。

基底 P(1) だけ、あるいは帰納ステップだけでは ∀n P(n) が従わないことを、それぞれ例で示せ。\text{基底 } P(1) \ \text{だけ、あるいは帰納ステップだけでは } \forall n \ P(n) \ \text{が従わないことを、それぞれ例で示せ。}
解答.

答

ステップのみP(n):n=n+1 (ステップは成り立つが基底が偽で、∀n P(n) は偽)基底のみP(n):n=1 (基底 P(1) は真だが P(2) は偽)\begin{array}{ll} \text{ステップのみ} & P(n): n = n + 1 \ \text{(ステップは成り立つが基底が偽で、} \forall n \ P(n) \ \text{は偽)} \\ \text{基底のみ} & P(n): n = 1 \ \text{(基底 } P(1) \ \text{は真だが } P(2) \ \text{は偽)} \end{array}

注意 帰納法は P(1) と∀k\forall k(P(k)⇒\RightarrowP(k+1)) の両輪で成り立つ。片方だけでは何も言えない。ドミノの比喩でいえば、基底は「最初の1枚を倒すこと」、ステップは「隣へ倒れる仕組み」。どちらが欠けても全部は倒れない。▨

問題 5.3. 次は数学的帰納法による「証明」だが、誤りがある。どこが誤りかを指摘せよ。

主張: 2 以上のすべての整数は素因数分解をもつ。「証明」: P(k) (k が素因数分解をもつ)を仮定して P(k+1) を示す。k+1 が素数なら明らか。合成数なら k+1=ab (1<a≤b<k+1) と書けるので、仮定より a,b の分解を掛ければよい。\begin{array}{l} \text{主張: } 2 \ \text{以上のすべての整数は素因数分解をもつ。} \\ \text{「証明」: } P(k) \ \text{(} k \ \text{が素因数分解をもつ)を仮定して } P(k+1) \ \text{を示す。} \\ \quad k+1 \ \text{が素数なら明らか。合成数なら } k+1 = ab \ (1 < a \le b < k+1) \ \text{と書けるので、} \\ \quad \text{仮定より } a, b \ \text{の分解を掛ければよい。} \end{array}
解答.

答 誤り: 仮定しているのはP(k)P(k)だけなのに、kkとは限らないa,b (a,b<k+1)a, b \ (a, b < k+1)についてP(a),P(b)P(a), P(b)を使っている。強い帰納法が必要。

注意 通常の帰納法の仮定は「直前の P(k)」しか与えない。しかし k+1==ab の a, b は k より小さい任意の数であって、k とは限らない。正しくは強い帰納法(P(2)∧\land…∧\landP(k) をすべて仮定して P(k+1) を示す)を使う。「直前だけでは足りず、それまで全部を使いたい」場面が強い帰納法の出番。なお強い帰納法は通常の帰納法と論理的な強さは同じ(Q(k)==P(2)∧\land…∧\landP(k) に通常の帰納法を適用すればよい)。▨

問題 5.4. 次は数学的帰納法による「証明」だが、誤りがある。どこが誤りかを指摘せよ。

数列 a1=1, a2=3, an+2=an+1+an について an<2n を示したい。「証明」: P(k) すなわち ak<2k を仮定すると ak+1=ak+ak−1<2k+ak−1 。\begin{array}{l} \text{数列 } a_1 = 1, \ a_2 = 3, \ a_{n+2} = a_{n+1} + a_n \ \text{について } a_n < 2^n \ \text{を示したい。} \\ \text{「証明」: } P(k) \ \text{すなわち } a_k < 2^k \ \text{を仮定すると } a_{k+1} = a_k + a_{k-1} < 2^k + a_{k-1} \ \text{。} \end{array}
解答.

答 誤り:ak−1<2k−1a_{k-1} < 2^{k-1}を使いたいのに、仮定はP(k)P(k)だけでP(k−1)P(k-1)を与えない。強い帰納法(またはP(k)∧P(k+1)P(k) \land P(k+1)を命題に取る)が必要。

注意 漸化式が2つ前まで遡るとき、通常の帰納法の仮定(直前の1つだけ)では足りない。強い帰納法を使うか、示す命題を Q(n)==「P(n) かつ P(n+1)」と組にして通常の帰納法を回す。どちらも同じことで、要は「ステップで実際に使う仮定を、仮定として宣言しておく」ことが大切。▨

問題 5.5. 数学的帰納法の論理構造について、次の問いに答えよ。

「すべての自然数 n について P(n)」を数学的帰納法で示すとき、示すべき2つの命題を論理式で書け。\text{「すべての自然数 } n \ \text{について } P(n) \text{」を数学的帰納法で示すとき、示すべき2つの命題を論理式で書け。}
解答.

答P(1) ∧ ∀k (P(k)⇒P(k+1))P(1) \ \land \ \forall k \ \bigl(P(k) \Rightarrow P(k+1)\bigr)

注意 基底 P(1) と、帰納ステップ∀k\forall k(P(k)⇒\RightarrowP(k+1))。この2つから∀n\forall nP(n) が従う、というのが帰納法の原理。無限個の主張∀n\forall nP(n) が、2つの有限な確認に還元されるのが要点。どちらか一方だけでは何も従わない。▨

問題 5.6. 数学的帰納法の論理構造について、次の問いに答えよ。

最小数原理(自然数の空でない部分集合には最小元がある)から数学的帰納法を導くとき、どんな集合の最小元を取るか。\text{最小数原理(自然数の空でない部分集合には最小元がある)から数学的帰納法を導くとき、どんな集合の最小元を取るか。}
解答.

答S={n∣P(n)S = \{ n \mid P(n)が偽}\}(反例の集合)の最小元n0n_0を取る。

注意 基底 P(1) と帰納ステップを仮定して S≠\ne∅ とすると、最小数原理より S に最小元n0n_{0}がある。n0=n_{0} =1 なら基底に矛盾。n0n_{0}> 1 なら最小性からP(n0P(n_{0}− 1) は真、帰納ステップよりP(n0)P(n_{0})も真となりn0∈n_{0} \inS に矛盾。よって S==∅、すなわち∀n\forall nP(n)。帰納法と「最小の反例を取る背理法」が地続きであることが見える。▨

問題 5.7. 次は数学的帰納法による「証明」だが、誤りがある。どこが誤りかを指摘せよ。

主張: すべての自然数 n について 1+2+⋯+n=n2+n+22 。「証明」: n=k で成立を仮定すると1+⋯+k+(k+1)=k2+k+22+(k+1)=k2+3k+42=(k+1)2+(k+1)+22となり P(k+1) が従う。\begin{array}{l} \text{主張: すべての自然数 } n \ \text{について } 1 + 2 + \cdots + n = \dfrac{n^2 + n + 2}{2} \ \text{。} \\ \text{「証明」: } n = k \ \text{で成立を仮定すると} \\ \quad 1 + \cdots + k + (k+1) = \dfrac{k^2 + k + 2}{2} + (k+1) = \dfrac{k^2 + 3k + 4}{2} = \dfrac{(k+1)^2 + (k+1) + 2}{2} \\ \quad \text{となり } P(k+1) \ \text{が従う。} \end{array}
解答.

答 誤り: 基底が偽。n=1n = 1で左辺は11、右辺は1+1+22=2\dfrac{1 + 1 + 2}{2} = 2で一致しない。

注意 帰納ステップの計算は完全に正しい(実際 (k²+3k+4)/2==((k+1)²+(k+1)+2)/2)。それでも主張は偽である。正しい公式は n(n+1)/2 で、この式は常に 1 だけ大きい。「ステップが通る」ことと「主張が真」は別物で、基底が偽なら連鎖は始まらない。ステップだけ検算して安心するのは危険。▨

問題 5.8. 数学的帰納法の論理構造について、次の問いに答えよ。

強い帰納法の帰納ステップを論理式で書き、通常の帰納法との違いを述べよ。\text{強い帰納法の帰納ステップを論理式で書き、通常の帰納法との違いを述べよ。}
解答.

答∀k ((P(1)∧P(2)∧⋯∧P(k))⇒P(k+1))\forall k \ \Bigl( \bigl(P(1) \land P(2) \land \cdots \land P(k)\bigr) \Rightarrow P(k+1) \Bigr)

注意 通常の帰納法が仮定するのは直前の P(k) だけだが、強い帰納法は P(1) から P(k) までを全部仮定してよい。仮定が強いぶん使いやすく、素因数分解の存在や2つ前まで遡る漸化式で必要になる。論理的な強さは通常の帰納法と同じで、Q(k)==P(1)∧\land…∧\landP(k) に通常の帰納法を適用すれば導ける。▨

問題 5.9. 次は数学的帰納法による「証明」だが、誤りがある。どこが誤りかを指摘せよ。

ある学生の主張: 「帰納法の仮定で P(k) を仮定してよいのだから、P(k) はすでに真だと分かっている。よって帰納ステップでは P(k) を証明したことになる。」\begin{array}{l} \text{ある学生の主張: 「帰納法の仮定で } P(k) \ \text{を仮定してよいのだから、} \\ \quad P(k) \ \text{はすでに真だと分かっている。よって帰納ステップでは } P(k) \ \text{を証明したことになる。」} \end{array}
解答.

答 誤り: 帰納ステップで示すのは含意P(k)⇒P(k+1)P(k) \Rightarrow P(k+1)であって、P(k)P(k)そのものではない。

注意 帰納ステップは「もし P(k) が真なら P(k+1) も真」という含意を示す作業であり、P(k) が実際に真だと主張しているのではない。P(k) が真であることは、基底 P(1) から含意を k−1 回たどってはじめて言える。含意を示す、という構造を取り違えると「示すべきことを仮定している(論点先取)」という誤解に陥る。▨

問題 5.10. 次は数学的帰納法による「証明」だが、誤りがある。どこが誤りかを指摘せよ。

主張: すべての自然数 n について n=n+1 。「証明」: P(k) すなわち k=k+1 を仮定する。両辺に 1 を足すとk+1=k+2 、これは P(k+1) である。よって帰納法よりすべての n で成立。\begin{array}{l} \text{主張: すべての自然数 } n \ \text{について } n = n + 1 \ \text{。} \\ \text{「証明」: } P(k) \ \text{すなわち } k = k + 1 \ \text{を仮定する。両辺に } 1 \ \text{を足すと} \\ \quad k + 1 = k + 2 \ \text{、これは } P(k+1) \ \text{である。よって帰納法よりすべての } n \ \text{で成立。} \end{array}
解答.

答 誤り: 基底ケースP(1) (1=2)P(1) \ (1 = 2)を確認していない(実際に偽)。帰納ステップだけでは何も従わない。

注意 帰納ステップ「P(k)⇒\RightarrowP(k+1)」自体はこの偽証明でも正しく示されている。しかし帰納法が要求するのは P(1)∧∀k\land \forall k(P(k)⇒\RightarrowP(k+1)) の両方。最初の1枚が倒れていなければ、ドミノがどれだけ連鎖する仕組みでも1枚も倒れない。基底の確認は飾りではない。▨

問題 5.11. 次は数学的帰納法による「証明」だが、誤りがある。どこが誤りかを指摘せよ。

主張: すべての自然数 n について 2n>n2 。「証明」: n=1 では 2>1 で成立。2k>k2 を仮定すると2k+1=2⋅2k>2k2≥(k+1)2 。よってすべての n で成立。\begin{array}{l} \text{主張: すべての自然数 } n \ \text{について } 2^n > n^2 \ \text{。} \\ \text{「証明」: } n = 1 \ \text{では } 2 > 1 \ \text{で成立。} 2^k > k^2 \ \text{を仮定すると} \\ \quad 2^{k+1} = 2 \cdot 2^k > 2k^2 \ge (k+1)^2 \ \text{。よってすべての } n \ \text{で成立。} \end{array}
解答.

答 誤り: 最後の不等式2k2≥(k+1)22k^2 \ge (k+1)^2はk≥3k \ge 3でしか成り立たない(k=1,2k = 1, 2で破れる)。実際n=2,3,4n = 2, 3, 4で主張は偽。

注意 基底 n==1 は正しく、ステップの式変形も k≥\ge3 では正しい。しかし k==1, 2 でステップが破れるので、n==1 からの連鎖がそこで切れる。実際 2²==4 > 4 は偽、2³==8 > 9 は偽、24=2^{4} =16 > 16 も偽。正しい主張は「n≥\ge5 で 2ⁿ > n²」で、基底を n==5(32 > 25)に置けばステップ(k≥\ge5≥\ge3)が常に通り、証明が完成する。ステップが成り立つ範囲と基底の位置を合わせること。▨

問題 5.12. 数学的帰納法の論理構造について、次の問いに答えよ。

「すべての自然数 n について P(n)」の否定を書き、最小反例法の第一歩を述べよ。\text{「すべての自然数 } n \ \text{について } P(n) \text{」の否定を書き、最小反例法の第一歩を述べよ。}
解答.

答¬∀n P(n) ≡ ∃n ¬P(n)\lnot \forall n \ P(n) \ \equiv \ \exists n \ \lnot P(n)。このnnたちの中から最小のn0n_0を取る。

注意 全称の否定は存在。反例が存在するなら、最小数原理により最小の反例n0n_{0}が取れる。このn0n_{0}について「n0n_{0}より小さいところでは P が成り立つ」という強い情報が無料で手に入るのが最小反例法の旨み。これは強い帰納法の言い換えでもある。▨

前提記事