Coqとのはじめての対話

【 ファースト・インプレッション 】

今回のセッションの目的は、はじめてCoqに触れる人に、Coqという言語のイメージを持ってもらうことです。当面は、Coqをインストールして実際に動かしてみなくとも、テキストでCoqの基本的な動きを説明したいと思っています。

ファースト・コンタクトでのファースト・インプレッションは大事なものです。ただ、この点では、今回の導入は少し危険な冒険をしています。

というのも、Coqは関数型言語としても使えますので、LISPの親戚のように紹介することもできるのですが、ここではそうしませんでした。Coqでの「証明」のサンプルを紹介しています。それがCoqの一番重要な働きだと考えているからです。

もちろん、「証明」のサンプルには、簡単なものを選びました。ここで「証明」していることは「すべての命題Aについて、AならばAである。」という命題です。

 「「AならばA」だって? そんなのを、同語反復という。」
 「自明のことだろう。」
 「そんなことに、証明が必要なわけ?」

ファースト・コンタクト、最初から悪印象を残しそうです。

僕がCoqでの「証明」の紹介を続けると、さらに悪いことが続きます。

 「そんなのが証明なわけ?」
 「意味わからん」
 「ChatGPTなら、誰でも最初からすごいと思うよ」

確かに。

それは、ChatGPTのような大規模言語モデルにもとづく「人工知能」技術が、我々人間に、生まれつき誰にも備わっている「言葉の意味を理解する能力」に、直接、訴求しているからです。

ただ、ことばにとって「意味」が本質的に重要であるように、数学にとっては「証明」が、やはり本質的に重要なのです。我々の日常の世界は、ほとんど「ことばとその意味の世界」で満ち足りてているように見えるかもしれません。ただ、我々の認識の発展史からみれば、それは「世界」の一面です。

今回の「導入」で悪印象を与えたかもしれないことには、もう一つ理由があります。それは、今回の「Coqとのはじめての対話」が、人間とCoqとの「対話」になっていなかったことに原因があると考えています。

Coqは、機械と人間との対話で証明を進めます。それが大きな特徴です。Coqは「証明支援システム」と呼ばれるのですが、この言葉だけだと「人間の証明を支援する」システムということになります。ただ、対話を続けていくと、「機械の証明を人間が支援しているのでは?」という不思議な気持ちになることがあります。

こうした、奇妙な連帯感を説明するのは難しかったのですが、GitHubのCoPilotで開発を進めている多くの開発者も、こうした感情を共有できるのではと感じています。

「機械は推論する!」の能力の鍵は、機械と人間との「対話」が握っています。次回、Coqと人間との「対話」にもう少し、フォーカスしていきたいと思います。

ファースト・インプレッションは、様々だったと思います。
いずれにしろ、Coqの世界にようこそ!

-------------------------------------

ショートムービー「Coqとのはじめての対話 」を公開しました。https://youtu.be/CVnjUwUcHa8?list=PLQIrJ0f9gMcPrNFRG1sEmtCRDnemxc1Pc

資料 pdf「 Coqとのはじめての対話 」https://drive.google.com/file/d/1jqJFqKpWk6bBNXaWo52iMQmRw0wNTY0v/view?usp=sharing

blog:「 ファースト・インプレッション 」 
https://maruyama097.blogspot.com/2023/06/coq.html

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

コメント

このブログの人気の投稿

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

初めにことばありき

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