人気のロジックのカリー-ハワード対応
-
26-09-2019 - |
質問
教えて下さいうえの基本との接続の基本論理プログラミング現象の統語間の類似度タイプシステムは、従来の論理によるものか。
解決
カレー-ハワードの対応ではな論理プログラミングが機能プラグインです。基本的なメカニックのPrologには正当性を証明論によるジョン-ロビンソンプレイス 解像技術, 示することが可能であるということを確かめの論理式として表され角条項 satisfiable, であるかどうかをsubstitueその論理変数としてtrueです。
このように論理プログラミングが約を指定するプログラムとしての論理式で表現し、計算のプログラムが何らかの証拠推論、Prolog reolutionとしていました。一方、カリー-ハワード対応方法を示し証特別formulasitionのロジックと呼ばれる 自然控除, 必要に応じ、プログラムのラムダ計算のタイプのプログラムに対応する公式の証明;計算機のラムダ計算に対応する重要な現象を証明論という正常化し、変換証、直接証明.で論理プログラミングおよびプログラミングに対応する様々なレベルでこれらの論理:論理プログラムの試合では公式のロジックな機能性プログラムの試合証明の式.
あもう一つの違い:のロジックの使用は一般的に異なります。論理プログラミングは一般的に簡単なロジック—申し上げたように、Prologはホーン条項を、高いクラスが制限される式が意味合いの入れ子にあdisjunctionsがPrologの回復に全力を古典論理の切ります。一方、プログラミング言語などのウを多用するプログラムが種類して入れ子の影響や、飾られているすべての種類の多型.ものづく直観主義様の論理のクラスロジックが禁止の原則のを除く中、ロビンソンの計算機構。
その他のポイント:
- できるベース論理プログラミングにより高度な論理によ角条項;例えば、ラムダ-prologに基づく直観主義様の論理は、別の計算メカニズム。
- デールミラーは、その証明論的パラダイムの背後にロジックのプログラミング 証検索プログラミング 喩の対照 証明とプログラム 隠喩とは別にするために行われるカレー-ハワード対応となります。
他のヒント
は論理プログラミングは、証明のための目標監督検索に関する基本的です。なく論理直接プログラミング言語 - 時々不可欠と他の言語のが型付け言語とロジックとの間の構造的関係は、一般的に、関数型言語を含みます。この関係は、プログラムへの証明に関するます。
だから、証明探索をプログラミングロジックは、機能的なプログラムとして解釈されている証拠を見つけるために使用することができます。これは、(あなたが尋ねたとして)2間の最も直接的な関係のようです。
は、全体のプログラムを構築することは、この方法では実用的ではないが、それはプログラムの中で退屈な詳細に記入するのに有用であることができ、このいくつかの重要な例は、実際にはあります。この基本的な例は、構造的なサブタイプである - 簡単な含意証拠を介して、いくつかの証拠工程で充填するためにどの対応します。はるかに洗練された例では、目標指向サーチの特定の種類を含むのHaskellの型クラスシステムである - 。極度に、これはコンパイル時に論理プログラミングのチューリング完全な形を含む