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

blog:「 「証明の状態」は変化する 」 
https://maruyama097.blogspot.com/2023/06/coq_14.html

「 はじめてのCoq 」まとめページ
https://www.marulabo.net/docs/hellocoq1/

コメント

このブログの人気の投稿

マルレク・ネット「エントロピーと情報理論」公開しました。

初めにことばありき

人間は、善と悪との重ね合わせというモデルの失敗について