理論的CSはいつ直観主義的証明を重視するか(またはすべき)か?


23

私が理解していることから(これは非常に少ないので、私は間違いを修正してください!)、プログラミング言語の理論はしばしば「直観主義的」証明に関係しています。私自身の解釈では、このアプローチでは、論理と証明可能性に関する計算の結果を真剣に受け止める必要があります。仮説から結果を構築するアルゴリズムが存在しない限り、証明は存在できません。例えば、またはいずれかのオブジェクトを非構成的に示すため、除外された中間の原理を公理として拒否する場合があります。X¬X

上記の哲学は、そうでないものよりも直観的に有効な証明を好むようになるかもしれません。しかし、理論的CSの他の分野の論文で直観主義的論理を実際に使用することについて、私は何の懸念も見ていません。古典的なロジックを使用して結果を証明できてうれしいです。たとえば、除外された中間の原理を使用して、アルゴリズムが正しいことを証明することを想像できます。言い換えれば、計算結果に制限のある宇宙を気にし、真剣に受け止めていますが、必ずしもこれらの結果の証明ではありません。

1.理論的なCSの研究者は、直観的に有効な証明を書くことを心配していますか?TCSの結果、特にアルゴリズムの結果がいつ直観的論理を保持するか(または、より興味深いことに、保持しない場合)を理解しようとする理論的コンピューターサイエンスのサブフィールドを簡単に想像できます。しかし、私はまだ出会っていません。

2.彼らがすべき哲学的議論はありますか?1は、コンピュータサイエンスの結果は、可能な場合intuitionistically証明されるべきである、と私たちは必要とする結果を知るべきだと主張することができように思える例えば PEMを。誰かがそのような議論をしようとしましたか?それとも、この質問はあまり重要ではないというコンセンサスがあるのでしょうか?

3.副次的な質問として、私はこれが実際に重要な場合の例を知りたいと思っています。古典的な論理では成立するが直観主義的な論理では成立しないことが知られている重要なTCS結果はありますか?または、直観主義的な論理を持たないと思われる。

質問の柔らかさをおApびします!専門家の意見を聞いた後、言い直しや再解釈が必要になる場合があります。


3
この質問の1つの側面が「死ぬまで」研究されています。直観主義的な証明とプログラムの間の接続の名前は、カリー-ハワード通信です。手短に言えば、プログラム=直観主義的証明、型=命題、二重否定==ジャンプ。
マーティンバーガー

直観主義的な論理では成り立たないが、古典的な論理では成り立つことが知られている重要なTCS結果:すべてのプログラムは終了するか、無制限の時間実行されます。:)
コーディ

1
@MartinBergerは-はい、しかし、別の方法を私の質問を述べるために、我々は実際に我々が証明するかどうかを気にしない書き込みが intuitionistている、あるいは我々だけで興味を持っている留学抽象的に、そのような証拠を?
usul

1
@cody、別名マルコフの原理。+ usul、あなたが念頭に置いているのは直観主義的な論理ではなく、建設的な数学だと思います。あなたは直観主義的な論理だけでは多くのことをすることができず、直観主義に対するあなたの強調は建設的な数学と区別しないことから来るように思えます。
Kaveh

@usulはい、カリー・ハワードの通信によると、直観主義的な証明は「素敵な」プログラミング言語のプログラム(ファンキーな制御構造がないなど)であるのに対し、真に古典的な証明はより複雑な言語のプログラムです。
マーティンバーガー

回答:


6

コメントで述べたように、直観主義の論理は主要なポイントではありません。より重要な点は、建設的な証拠を持つことです。Martin-Löfの型理論は、直観主義論理よりもプログラミング言語理論にはるかに関連があると思います。また、Martin-Löfの研究が建設的な数学への一般的な関心の復活の主な理由であると主張する専門家がいます。

建設性の計算可能性の解釈は、考えられる1つの視点ですが、それだけではありません。ここで、建設的な証明と古典的な証明を比較する場合は注意が必要です。どちらも同じシンボルを使用する場合がありますが、それらのシンボルが意味するものは異なります。

古典的な証明は直観主義的な証明に変換できることを覚えておくのは常に良いことです。言い換えれば、ある意味で、古典的な論理は直観主義的な論理のサブシステムです。したがって、ある意味で古典的な証明を(計算可能な関数を使用して)実現できます。一方、建設的な数学は、古典的な環境における数学的システムと考えることができます。

ABAB

x y φ(x,y)xyφ(x,y)yyxAxφ(x,A(x))A

では、なぜ直観主義のロジックを実際に使用しないのでしょうか?いくつかの理由があります。たとえば、私たちのほとんどはそのような心構えで訓練されていません。また、文の古典的な証拠を見つけることは、建設的な証拠を見つけるよりもはるかに簡単かもしれません。または、非表示で建設的な設定ではアクセスできない低レベルの詳細を気にすることもできます(線形ロジックも参照)。または、建設的な証拠に付属する余分なものを取得することに興味がないかもしれません。そして、プルーフからプログラムを抽出するツールがありますが、これらのツールは一般に非常に詳細なプルーフを必要とし、一般理論家にとって使いやすいものではありません。要するに、あまりにも多くの利益のためにあまりにも多くの痛み。

Π20PAPAPA

ダグラス・S・ブリッジスは、彼の計算可能性理論の本の紹介で、結果を建設的に証明するべきだと主張したことを覚えています。彼は、IIRCが本質的に次のような例を示しています。

あなたが大規模なソフトウェア会社で働いており、マネージャーが問題を解決するためのプログラムを求めていると仮定します。2つのプログラムで戻ってきて、これらの2つの解決策のうちの1つを上司に正しく伝えることは受け入れられますか?

最後に、古典と直観の論理に同じ記号を使用しますが、これらの記号は異なる意味を持ち、使用する記号は表現したいものに依存することに注意してください。

最後の質問については、ロバートソン・シーモアの定理は、古典的には正しいとわかっている定理の一例だと思いますが、建設的な証明はありません。こちらもご覧ください


「理論A」とは何ですか。なぜその内部の証明に特に注意する必要があるのですか。
ステラバイダー


7

直感的な論理が計算の自然な論理である理由について考える価値があります。なぜなら、多くの場合、人々は技術的な詳細に迷い、問題の本質を把握できないからです。

非常に簡単に言えば、古典的な論理は完全な情報の論理です。システム内のすべてのステートメントは、明確に真または偽として知られているか、または認識可能であると想定されます。

一方、直観主義的論理には、未知の未知の真理値を持つステートメントの余地があります。これは計算に不可欠です。なぜなら、一般的なケースでは終了が決定できないため、一部のステートメントの真理値がどうなるか、または特定のステートメントに真理値を割り当てることができるかどうかも常にわからないからです。 。

¬¬PP

私の意見では、これらの「セマンティック」な理由は、マーシャリングできる他の技術的な理由よりも、計算に直観主義的なロジックを使用するはるかに重要な動機です。


3

MD5やSHAなどの実際の暗号化ハッシュ関数はキーレスです。そのため、理論的な暗号化からセキュリティに関する理由に技術を適用することは非常に困難です。その理由は簡単です:キーレスハッシュ関数には、そのハッシュ関数の下で衝突を出力する非常に小さなプログラム/敵が存在します。つまり、このような衝突を起こすプログラムが存在します!-ハードコードされています。

Phil Rogawayの論文「Formalizing Human Ignorance:Collision-Resistant Hashing without the Keys」はこの問題を扱っています。その中で彼は、キー付きハッシュ関数のいくつかの非常に標準的な定理(Merkle-Damgård構築とハッシュ後記号パラダイムなど)を、キーなしハッシュ関数に適用する「直観主義者に優しい」定理ステートメントで適合および再証明できることを示しています。


0

包括的なオンラインブックLogic for Computer Science、300ppの直観論的論理に関する素晴らしい章があります。[1] sec 9.5、p210、p220の要約:

直観主義的論理は、非建設的な存在証明または排除された中間の法則に基づくものを拒否した数学の構成主義運動から生まれました。最近、直観的な数学とプログラミングの関係は、命題と型(プログラミングの意味で)は同等であるという観察から生まれました。自然な演ductionに基づくこの正式なシステムでのアルゴリズム開発は、論理表記で仕様を記述し、それを型と見なして、空でないことを証明することから成ります。基礎となるロジックは証明を構成するため、実行できる場合は、

TCSist Andrej Bauerによる「数学と計算、コンピューターの数学」[2]で、基本的に「直観主義数学は物理学に良い」と提案しているTCSist Andrej Bauerからの視点もあります。プレゼンテーションは主に物理学の観点から行われますが、物理学と密接に結びついたCSを検討する人々にとって、イデオロギーは一般にTCSに伝えられます。

計算解釈。これは、コンピューターサイエンスで一般的に提示される直観主義的論理の解釈です。適切なデータ構造で表されるすべてのセットを表示します。これはコンピューター科学者にとって合理的な視点です。次に、その真実を目撃するプログラム(計算上の証拠)が存在する場合、声明は真実であると見なされます。

[1] コンピュータサイエンス、 ReevesおよびClarkのロジック

[2] 物理学バウアーのための直観的数学

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.