全ての質問用紙に目を通しましたが,後で回答する方が適切と考えた質問は ここでは答えていません.そのうち答えます.また講義中に説明したと考えて いる質問についても回答していません.回答に納得できない場合は,またして ください.また,似た質問はひとつにまとめたり,質問の文章は適宜変更して います.
m : nat ... IHn' : ... m に言及した帰納法の仮定 ... (Q(m) と呼ぶ) ... ====================================== ゴール命題 G(m)さて,講義でも説明したように,数学的帰納法は本来「任意の m について P(m)」を証明するための方法です.この「任意の m について」の部分は文脈に ある m : nat が相当しています.しかし,上の状況は,実は,「任意の m に ついて G(m)」ではなく,「任意の m について,Q(m) ならば G(m)」というも う少し弱い命題を証明しようとすることに相当しています.ですので,ここで induction m をしても,Coq は「Q(m) ならば G(m)」を「P(m)」と考えて新し いゴールを準備してしまい,その結果うまく証明できない,ということになり がちです. これを回避するためには IHn' を文脈から消してから induction m をする, という手もあるのですが,たいていの場合は,一旦この定理から上に戻って, 「任意の m について G(m)」という新たな補題を立てる方がうまくいくと思います.
Error: No focused proof (No proof-editing in progress).のようにエラーになること(証明中ではないこと)を確認してください. その他の原因として,
Inductive sum (n : nat) : nat := match n with | O => O | S p => n + sum p.