Coqは人間に何を伝えたか?
【 「証明の状態」は変化する 】
前回は、話が飛躍して、「整合的で累積的値の体系」としての数学を、「人間の誤った証明」から守るためにCoq等の「証明の検証」機能が重要だという話をしました。
ChatGPT等の大規模言語モデルに基づく「人工知能」技術では、機械が誤った主張を行う幻覚( Hallucination )は避けられません。我々は、そうした誤りの可能性を織り込んだ上で生成系AIと付き合います。
それは、大規模言語モデルの母胎となった人間の「ことばの世界」自身が、そうした誤りには寛容だからです。ただ、数学的AIを展望するならば、機械が誤った主張を行う幻覚( Hallucination )は許されません。それは言語ネイティブなAIとの大きな違いになります。
ただ、数学的AIの未来に、どんな数学的問題も自動的に証明する「万能数学AI」があるわけではありません。なぜなら、チャーチ=チューリングのテーゼで、そうしたマシンの構成は、原理的に不可能であることがすでにわかっているからです。
それでも、「数学の証明の検証の自動化」の拡大は、「産業革命」もとい「科学革命」以上のインパクトを科学に与えると思います。もっとも、現在 GitHub を利用している人ぐらいの規模まで、「数学的証明の形式化」を行う人が増えた方がいいと思うのですが。まだまだ、道は遠いのかも。
今回のセッションは、現実的な、初心者にとってのCoqでの証明の話に戻ります。
Coqの証明は、人間とCoqの「対話」を通じて進行します。証明を進めるために、人間がCoqに与える命令を tactic と呼びます。人間がtactics を投入すると、Coqはそれに反応します。
Coqで対話的に証明を進めるためには、人間の入力に対して、Coqがどのように反応したか、その反応の意味をよく知る必要があります。今回のセッションは、その話です。
Coqが返す反応に含まれる一番大事な情報は、その時点での「証明の状態」です。人間がCoqに対して tactics を投入する度に「証明の状態」は刻々と変化していきます。我々は、Coqが返す「証明の状態」をみて、次の投入すべき証明の指示 tactics を考えます。
「証明の状態」は、大きく二つの情報を含んでいます。
一つは、当面証明に集中すべき命題についての情報です。これを「サブゴール」といいます。
もう一つは、この「証明の状態」のもとで、真であると前提して証明に利用できる命題についての情報です。こうした命題の集まりを、このテキストでは「仮説部」と呼んでいます。
「証明の状態」は、進行中の証明の到達点について重要な情報を、我々に教えてくれます。
Coqは、元の問題をより簡単な問題(サブゴール)に分解して、それをすべて解こうとします。すべてのサブゴールが解かれたとき、元の問題の証明が終わります。別の言い方をすれば、Coqでの証明の最終的な目標は、証明されていないサブゴールの数をゼロにすることなのです。
-------------------------------------
ショートムービー「 Coqは人間に何を伝えたか? 」を公開しました。
https://youtu.be/jZYQx2tKJXU?list=PLQIrJ0f9gMcPrNFRG1sEmtCRDnemxc1Pc
資料 pdf「Coqは人間に何を伝えたか? 」
https://drive.google.com/file/d/1juM12FOmfChWx3t3R0IYvucnOuw17yUu/view?usp=sharing
コメント
コメントを投稿