数学的帰納法で殺伐としてんなぁ

客観的に書いているのだが,何か議論を敵対や否定と考える人も多いだろうから匿名化した.ググれば一発だけど.

高校数学の多くの参考書・問題集の数列(数学的帰納法)のところに、次の問題が載っています。これに対する「典型的な解答」(問題の下にあります)、実は大きな不備があります(訂正を出す必要があるレベルでマズイと思います)。どんな不備があるか、分かりますか?
[問題]
以下を満たす数列\{a_n\}の第n項を求めよ。
a_n\gt0…①(n=1,2,3,…)
\displaystyle\sum_{i=1}^n a_i^3=\left(\displaystyle\sum_{i=1}^n a_i^2\right)^2…②(n=1,2,3,…)

[典型的な解答]
a_n=n(n=1,2,3,…)を数学的帰納法で証明する。

(i)①②より a_1\gt 0a_1^3=a_1^2\quada_1=1

(ii) a_i=i(n=1,2,3,…k)(k自然数
とすると②より
a_{n+1}^3+\displaystyle\sum_{i=1}^n i^3=\left( a_{k+1} + \displaystyle\sum_{i=1}^n i^2\right)^2
a_{k+1}^3-a_{k+1}^2-k(k+1)a_{k+1}=0
a_{k+1}\{ a_{k+1}^2-(k+1)\}(a_{k+1}+k)=0

①も加味して、a_{k+1}=k+1

に関して,

引用ツイートの「典型的な解答」の不備を理解するための例を用意しました。ご覧ください。
[問題]
以下を満たす数列\{a_n\}の第n項を求めよ。
a_1=0…①
a_{n+1}=a_n…②(n=1,2,3,…)
a_{n}+1=a_n…③(n=1,2,3,…)

[答案]
a_k=1(k自然数)とすると、②も考えてa_{k+1}=1。これと①より数学的帰納法により

a_n=n(n=1,2,3,…)]

「推測して帰納法」がどのような議論を指しているのかが人によって異なる可能性がありますが、自分の想定した「推測して帰納法」の議論では解の存在は言えていないと感じました。例を添付します
問題 任意の正の整数m,nについて a_{m+n}=a_ma_n+1…①が成り立ち,初項a_1=1…②となる数列\{a_n\} を求めよ.


①で m=n=1として a_2=a_1a_1+1=2
①で m=2n=1として a_3=a_2a_1+1=3
①で m=3n=1として a_4=a_3a_1+1=4
となり,a_n=n(任意のnに対して)と推測できる.
以下,任意の正の整数 n
(P_n): a_n=n
が正しいことをnに関する帰納法で示す.

(i) ②からa_1=1なので(P_1)は成立.

(ii) 正の整数kに対して(P_k)が成り立つと仮定すると,
①で m=kn=1として, a_{k+1}=a_ka_1+1=k\cdot1+1=k+1がわかるので(P_{k+1}) も成り立つ.

(i)(ii) から,任意の正の整数n(P_n)が成り立つとわかった.
よって,求めるべき数列は\{n\}である.

とかあって,

・(①かつ②)⇒(a_n=n(n=1,2,3,…))は示せているが,逆は言えていない。
・(①かつ②)の解の存在を(帰納法の中では)示していない。

という点を問題視しています!

とあるけど,実際に解を一意的に構成しているのだから「解の存在を(帰納法の中では)示していない」というのは違うよね.おそらく,このように考えた理由は

普通の「PならばQにおける命題Pの真偽」と帰納法における「PならばQにおける命題Pの真偽」は(問題に依存する部分もあるが)異なるニュアンスを持っている

ことへの理解の違いだと思われる.いじわるでない設定ではなく良い設定の帰納法の場合(与えられた条件が無矛盾であり,数列の添字が条件の適用範囲である,などの場合)には

a_1=◆ などの初期条件は与えられた条件から(無矛盾に)一意に決定される(故に「存在が確認されている」)

a_ii\leqq k)が一意に与えられると仮定すれば与えられた条件から(無矛盾に)一意に決定される(故に「存在が確認されている」)

ので,

・(①かつ②)の解の存在を(帰納法の中で)示されている

のである.もちろん「一意に存在する」という言葉を入れた方が論理的に丁寧ではあるが,与えられた条件がそれなりに単純な場合,帰納法の(ii)における命題 P は 「Pが真であるとすると」というよりも「(i)からPが真であるような具体例が与えられた場合には」という方が近い(言外には(i)から存在も含めて帰納的に示されていることが多い)ので,十分性は見る人が見れば明らかであり,例えば,連立方程式では同値変形だと了承される範囲において求められた解を代入して確かめることは省略されるのと同じように,数学的帰納法においても存在の言明は省略されるのである.

数学的帰納法の原理は「(i)からPが真だと帰納的に言えるので」証明ができるという話なのだから、(i)に対して存在が示されている以上,十分性を確かめなくても良いことが多い(2,3番目の問題の解答の不備は,後述するが,次元が違う話)

先程、連立方程式では同値変形だと了承される範囲においては,求められた解を代入して確かめることは省略されることが多いが,数学的帰納法も同じ流儀になっている.

このことを深く見てみよう.

連立方程式(不等式も含む)
x\gt 0…①,y\gt 0…②,z\gt 0…③,x^3=x^2…④,x^3+y^3=(x+y)^2…⑤,x^3+y^3+z^3=(x+y+z)^2…⑥
を解け.

に対して,①④より x=1 だから⑤は y(y-2)(y+1)=0 となり②より y=2 となる.よって⑥はz(z-3)(z+2)=0 となり③より z=3 となる.よって (x,y,z)=(1,2,3) である.

という解法は「解の存在を示していない」から訂正を出す必要があるレベルでマズイ不備(というからには答案として零点だということだろうか??)があり,(x,y,z)=(1,2,3) は確かに条件を満たしていると書かないといけないだろうか?

もしくは

「①④」⇔「x=1

となる.よって

「①②④⑤」⇔「x=1y(y-2)(y+1)=0かつ②」⇔「x=1y=2

となる.よって

「①②③④⑤⑥」⇔「x=1y=2z(z-3)(z+2)=0かつ③」⇔「x=1y=2z=3

となる,というように同値性を明確に書かないと訂正を出す必要があるレベルなのだろうか.

もしそうならば,いままで適当に教えていてすんません.この議論を再帰的に行なっているのが,この数学的帰納法による証明だと思ってました.許してちょんまげ.

もちろんこの連立方程式は1番目の問題の数列を初項から順番に第3項まで求める手順に関する連立方程式である.これを初項から順番に第k+1 項まで 2k+2 本の連立方程式を解くことによって求める手続きを再帰的に行なっているのが数学的帰納法である.

この問題の帰納法の(ii) では,a_1〜a_{k+1} までの連立方程式(不等式も含む) 2k+2 本を解くとき,そのうちの 2k 本は a_1〜a_{k} に関する連立方程式で,帰納法の仮定から,a_1=1,…,a_k=k という解であったときに,その値を代入して得られる残りの連立方程式
a_{k+1}\gt 0a_{k+1}(a_{k+1}-(k+1))(a_{k+1}+k)=0
を解いたら a_{k+1}=k+1 と唯一解が得られる,という連立方程式の代入法を亜流でやっているだけの話であり,必要条件ではなく「必要十分条件」として a_{k+1}=k+1 が得られている.

(イメージとしては,ガウスの消去法で前進消去した後に後退代入をやっている部分を帰納的に記述した感じ.可算個の連立方程式を下から順番に将棋倒しのように解いていっている,という気持ち)

なので,連立方程式における必要十分性の自明さと同程度の必要十分性の自明さだと思うのだが(もちろん,自明さとは人や時代によって異なるものではある).

個人的にはそこまで五月蝿く言わなくていいのにと思うけど.厳しいね.殺伐としている.吉野家に行かないと.

もちろん,一般的には2番目と3番目の例のように条件が過剰に与えられたときは必要性で絞って十分性を確かめる方が戦略的であるものの,この1番目の例ではそれに当らない.1番目では与えられた全ての式を用いて(書き方が舌足らずかも知れないが,結果的には)必要十分条件として数列の次の項を決定しているが,2番目と3番目は「与えられた全ての式を使わずに」必要条件として数列の次の項を決定しているので十分性の確認が必要となるので話が違うのである.

「全ての条件を使って必要十分条件で数列を決定しているけれども書き方が悪くて必要十分条件に見えないから気をつけろ」

という話と

「全ての条件を使わずに必要性で数列を決定しているから,存在するとすればそれに限ることしか示されていないので,十分性を確かめなければいけない」

という話を混ぜて議論してはいけない.混ぜるな危険.

補足しておくと,2番目の例は①②③のうち①②しか考えていないので式変形は同値変形にはなっておらず必要条件で,③をみたすことを確認しなければいけないという話なので1番目が不備であることを裏づける例としてはおかしいし,3番目の例も a_4 に関する条件は a_{1+3}a_{2+2}a_{3+1} と複数あるので,その全てを使わずに議論している点で同値変形にはなっていないので1番目が不備であることを裏づける例としてはおかしいということ.与えられた条件を全て用いて矛盾なく数列の項を構成していくことと,与えられた条件の一部を用いて数列の項を必要条件として構成していくことを「同じこと」と説明するのは教育上良くない.

全ての式を使って求めていなければ必要条件なので十分性は必要.3番目の式は1つの条件にしか見えないかも知れないけど実は複数の条件を1つで表現しているので気をつけないといけないよ,という程度でスルーしておいて良いんじゃないかな.気がついた人は褒めてあげれば良いけど.数学者を目指すなら悪い癖がつく前に論理をきっちり学ばないとと考えるのもわかるけど,多くの人が、細かい論理の穴があるかも知れないが(論理の穴を叩かれずに)数学の問題を(例え答を出すだけで満足したとしても)楽しんでくれる方が個人的には良いと思うのだけど。学ぶのだから完璧でないといけない,というのは私には無理。

ちなみに1番目の例については,書き様を変えて,「ゆえに」を「存在し,…に限る」に変えた

(i)①②より条件を満たす a_1 は存在して a_1=1 に限る.

(ii) 条件を満たす数列が a_i=ii=1,2,...,k)に限るとすると①②より条件を満たす a_{k+1} は存在して a_{k+1}=k+1 に限る.

という答案でもやっぱり不備なんでしょうね.

まぁ,細けえことはいいんだよ!というつもりでブログやってんので,私の[別館]の解答もまぁ不備だらけ.既に「解説なので解答としては不十分」と言い分けしているので問題なし.