カリー・ハワード通信に関連する証明技法


8

プログラムの正式な概念に関する情報源を探しています。これはCurry-Howardの対応と密接に関連しているようですが、これをUniversal Turing Machinesに追跡し、TMの説明と入力を読み取るその機能を利用することもできます。

カリーハワードのコレスポンデンスについて読むとき、UTM-sの原始性がプログラムの研究に害を及ぼす可能性があると感じます。高レベルの計算システムを定義して検討するという反対のアプローチはありますか?それについての良いリソースは何ですか?


1
良い出発点はHoare Logicでしょう。
Dave Clarke、

1
Lambekを忘れてしまった場合は、彼をリストに含めれば、すべてのカテゴリー理論をサービスに利用できます。
Artem Kaznatcheev

回答:


20

あなたが望むものは存在し、それは非常に大きな研究分野です。それはプログラミング言語の理論全体です。

大まかに言えば、2つの方法で計算を表示できます。あなたは機械を考えることができます、あるいはあなたは言語を考えることができます。

機械は基本的に、いくつかの(おそらく無限の)メモリを拡張有限制御のいくつかの種類です。これが、導入TOCクラスが有限オートマトンからプッシュダウンオートマトン、チューリングマシンに移行する理由です。各クラスは有限の制御を取り、メモリを追加します。(最近では、有限制御は回路モデルのようにさらに制限されることがよくあります。)重要なことは、有限制御が前もって与えられ、一度にすべて与えられることです。

言語は、組成のように、コントロールの家族全員を指定する方法です。基本的なコントロールのプリミティブフォームと、小さなコントロールから大きなコントロールを構築するための演算子があります。原始言語であるラムダ計算では、実際には制御しか指定されていません。定義できるのは、関数の抽象化、アプリケーション、変数参照だけです。

次の2つのビュー間を行き来できます。 sメートル-定理は本質的に、チューリングマシンが関数の抽象化とアプリケーションを実装できることの証明であり、チャーチエンコーディングは、ラムダ計算がデータをエンコードできることを示しています。しかし、これらの定理の両方に重要な内容があるため、計算を理解する2つの方法は同じであると誤解しないでください。

複雑さとアルゴリズムの研究者は、コスト実現可能性の結果に関心があるため、通常は機械を基本としています。少し誇張すると、彼らが持っている基本的な研究の質問は次のとおりです。

特定の種類の問題を解決できる最も強力でないマシンは何ですか?

私たちは表現力不可能性の結果に興味があるので、言語研究者は言語を基本としています。同様の誇張で、私たちの基本的な研究の質問は次のとおりです。

特定の種類の悪い行動を除外する最も表現力豊かな言語は何ですか?

余談ですが、2つの商品がそれぞれの理論家の価値観に直接対立していることに注意してください。アルゴリズムの優れた機能と複雑さにより、少ないリソースでより難しい問題を解決できます。言語がうまく機能すれば、プログラマーはより多くのことを実行できますが、悪い動作は禁じられます。(この矛盾が基本的に研究が難しい理由です。)

さて、なぜ理論Aの型が言語を使用しないのか、あるいは理論Bの研究者が機械を使用しないのかと疑問に思われるかもしれません。その理由は、基本的な研究の質問の形から生じます。

アルゴリズム/複雑さの定型化された基本的な研究の質問は下限の質問であることに注意してください-あなたが最善の解決策を持っていること、そしてあなたがどんなに賢くてもより良い方法はあり得ないことを知りたいのです。言語定義はプログラム構成の手段を修正します。したがって、言語モデルの下限が証明された場合、言語をいくつか拡張した場合、どうにかしてうまくいくことができないかどうかという疑問が残ります。新機能。機械モデルで、一度にすべての制御を行うことができるため、最初から機械が実行できるすべてのことがわかります。

しかし、マシンの仕様は、悪い振る舞いをブロックすることについて興味深いことを言うにはまったく間違っています。マシンは最初から完全な制御を提供しますが、ある特定のプログラムが大丈夫か悪いかを知っていても、それを拡張したり、サブルーチンとして使用したりするときには役に立ちません。Perlisのエピグラムには、「すべてのプログラムは他のプログラムの一部であり、めったに適合しない。」言語研究者はプログラムのクラス全体について話すことに興味があるので、言語は目的によりはるかに適しています。


3
これは、アルゴリズムの人々が実際にプログラミングではなく応用複雑性理論を行っているという私の見解に似ています。すばらしい答えです。また、実際には複雑な人々は汎用マシンの下限を証明できず、より弱い表現モデル(つまり、一種の言語)に制限されることになります
Suresh Venkat

非常に役立つ答え。単独で制御を定義できることに気づきました(ラムダ計算)。次に、smnの定理はラムダ計算にデータをエンコードする暗黙の機能を提供します。また、チューリングマシンに高レベルの制御(機能の抽象化と適用)を提供します。これは、私が想定しているように、データと基本制御を明示的にエンコードできるものです(明らかに、これはマシンに関する3番目の段落で説明されています)。
AllCoder 2012
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.