数学を書くための証明アシスタント


12

証明アシスタントを使用して数学的な証明を書きたいです。すべては、一次論理(平等)と自然推論を使用して記述されます。背景は集合論(ZF)です。たとえば、次の証明をどのように書くことができますか?

公理:xy(x=yz(zxzy))

定理:xy(z(zx)z(zy)x=y)

つまり、空のセットは一意です。

紙とペンを使ってそれを達成するのは簡単なことではありませんが、本当に必要なのは、証拠が正しいかどうかを確認するのに役立つソフトウェアです。

ありがとうございました。


11
まず、証明アシスタントを選択する必要があります。Coqは私が使用するものですが、にもたくさんあります。これらの一部は一次論理に基づいているため、ニーズにより適しています。次に、証明アシスタントの学習に取り組む必要があります。数日以内に、上記のような単純な定理をエンコードし、それらを証明できるはずです。私たちがあなたのためにこれをすることを期待しないでください。あなたはそのように何も学びません。
デイブクラーク

5
型理論ではなく集合論に興味があるなら、イザベルはおそらく最も簡単なシステムでしょう。Coqは奇妙で混乱しているように見えます。
マークReitblatt

2
あなたが書いた公理は一次論理ではなく、二次論理だと思います。これは、前者では変数が個人の範囲のみであるのに対し、後者では変数は個人とセットの両方に及ぶことがあるためです。明らかに、与えられた公理では、yは集合であり、zは個体です。xyz
MS Dousti

9
@Sadeq:ZFでは、とにかく宇宙の基本的な要素を設定していませんか?したがって、一次論理で「すべての集合」のようなことを言うことができるはずです。これはその公理で行われていることです。
ロビンコタリ

9
@Sadeq、ロビンが言ったことは正しい、は一次理論であり、質問に書かれた公理も一次である。ではZ Fすべてがセット対個人としては何もない、ただのセットです。(補足として、異なる種類の変数について話すために2次以上のオブジェクトに移動する必要はありません。異なるソートのみが必要です。2次以上のロジックは多くのソートされたロジックとはまったく異なります)。ZFZF
カヴェー

回答:


13

CoqとIsabelleの両方がこれを行うことができます。

[Coq] CoqがベースにしているCICでZFCをエンコードする方法を説明した論文があります。

Benjamin Werner:タイプのセット、セットのタイプ(1997)。 http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.55.1709

[Isabelle] ZFのライブラリがあります。

http://www.cl.cam.ac.uk/research/hvg/Isabelle/dist/library/ZF/index.html


3
この論文は非常に優れていますが、種(型変数)と公理を追加してZFの公理理論を直接エンコードし、これらの公理に直接アピールすることで証明を行う方が実用的だと思います。エンコードは、理論が表現力に関連していることを示すためのものです。
コーディ

2
私はブルーノ・バラスによって、しかし、これらのアイデアの実装があることを追加する必要があります:lix.polytechnique.fr/~barras/proofs/sets/index.html
コーディ

9

Kavehの提案でコメントから移動

まず、証明アシスタントを選択する必要があります。Coqは私が使用するものですが、にもたくさんあります。Coqは、高階論理(いわゆる誘導構造の計算)に基づいています。他の証明アシスタントは、一次論理に基づいているため、ニーズにより適している場合があります(上記のコメントを修正してください)。

次に、証明アシスタントの学習に取り組む必要があります。リンクされたドキュメントは、Coqを活用するためのチュートリアルです。Coqの専門家になるには何年もの献身と実践が必要ですが、午後には簡単な定理が証明されます。Coqまたは他の証明アシスタントを学習するための鍵は、リンクされた論文にあるような証明を行うことです。プルーフアシスタントとやり取りするすべての経験を紙に伝えることができないため、論文を読むだけではほとんど役に立ちません。

数日以内に、上記のような単純な定理をエンコードし、それらを証明できるはずです。私たちがあなたのためにこれをすることを期待しないでください。あなたはそのように何も学びません。

これらの定理の証明に成功したら、ここに答えを投稿してください。そして、あなたの経験についていくつかコメントを残してください。

あなたは挑戦する準備ができていますか?


4
Coqは合理的な選択です。ただし、xddz5が型理論ではなくZF集合理論で実際に動作する場合は、おそらくMizarの方が適しています。
ティモシーチャウ


5

Dave ClarkeはCoqを提案しますが、実際にはIsabelleはZFのAライブラリがあるため、はるかに優れたアイデアのようです。イザベルも非常に成熟しており、さまざまな戦術と拡張機能が含まれています。

私は個人的にMizarを使用したことはありませんが、同様に良いかもしれません。


2

次の証明をどのように書くことができますか?

Isabelle / ZFでは、このようなものを書くことができます

theory csthquestion imports Main

begin

theorem empty_unique:
shows "\<forall> x.\<forall>y.(\<forall>z. (z\<notin>x)) \<and> (\<forall>z.(z\<notin>y)) \<longrightarrow> x=y"
    by auto

end

ご覧のとおり、Isabelleはこれを自動的に証明します。もちろん、本当に必要な場合は、より詳細な証明を書くことができます。


2

この定理は、DC Proof 2.0ソフトウェアに含まれているチュートリアルの有効な例(例11を参照)です。私のウェブサイトhttp://www.dcproof.comから無料でダウンロードしてください。


1
これはこのサイトにとっては少し売りっぽいです。あなたのソフトウェアがどのように問題に適しているかを伝えるために、いくつかの情報を均等に提示できますか?おそらく、この派生物のビデオまたはスクリーンショットへのリンクが実行されていますか?
チャールズスチュワート

1
証拠は次のとおりです。dcproof.com / EmptySetUnique.htm私のWebサイトには、システムの動作を示すビデオがあります。
ダンクリステンセン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.