型理論の日常的な応用


10

型理論を理解したいのですが、まずどのようにそれを適用できるかを知る必要があります。プログラミングにおける型システムのほかに、型理論の自明ではないアプリケーションがもっとあるだろうか?他のアプリケーションがあるかもしれません、性格プロファイリングなどで言ってみましょうか?


2
なぜ何かが、それが発明された対象外のアプリケーションを持つ必要があるのですか?
ラファエル

3
数学の基礎?人々はまた、タイプドメイン理論を使用して、合成ドメイン理論やトポロジーなどを形式化しました。また、物語理論の物語をモデル化するためのタイプ理論ツールの使用に関するChris Martensの研究もあります。論文リンク
Daniel Gratzer

1
アプリケーションとしてのカウントを明確にできますか?
2015年

4
私はあなたの前提に納得していません。誰かが「自動車工学を理解したいのですが、まず何のために車を使うことができるかを知る必要があります。交通機関以外にもっと明白でない車の用途があるでしょうか?」と言ったとしましょう。彼らは車で寝ている人がいると答え、アンセルアダムスは彼をプラットフォームとして使用してから写真を撮りました。まあそれは素晴らしいですが、それは誰もがエンジニアリングを理解するのに役立ちませんし、私たちの仮想の学生を超リクライニングシートと非常に硬いサスペンションを備えた車を設計するように導く可能性があります。
David Richerby、2015年

3
事実は、理論的なコンピューターサイエンス(私が取り組んでいるものを含む)の多くは、数学的には美しいものの、実際には役に立たないということです。残念ながら側面を選ばなければなりません。
Yuval Filmus、2015年

回答:


10

インタラクティブなストーリーテリングに型理論を使用するChris Martensの博士研究の結果であるCeptreの研究に興味があるかもしれません。以下は、論文の要約です。

インタラクティブなストーリーテリングは、深い計算のアイデアと人類の物語と遊びの豊かな歴史を結び付け、構築するツールと言語に重要なコンテキストを提供します。同時に、正式な仕様言語は、プログラミング言語と複雑な演繹システムの分析のために通常確保されている表現と推論の手法のパレットを提供します。この論文は、インタラクティブなストーリーテリングドメインの問題を正式な仕様のソリューションに関連付けます。

具体的には、構造的な観点からナラティブを検討し、代替のナラティブパスが同時に相互作用するタイムラインを補完する役割を果たすことを観察します。線形論理は、この構造を調査するために必要な表現ツールを提供し、対応を証明と証明構築に拡張することにより、一連の計算の可能性を見つけます。これらの可能性を実現するための3つの取り組みを紹介します。(1)ナラティブを生成するための線形論理プログラミングの使用。(2)インタラクティブな物語、ゲーム、シミュレーションを作成するための新しいプログラミング言語。(3)デザインレベルのプログラムプロパティを記述および証明するための手法。

論理的セマンティクスへの最小限の拡張で強化された線形論理プログラミングにより、幅広いプログラミングイディオムとドメインエンコーディングが可能になることがわかりました。証拠として、社会シミュレーション、戦闘ベースのアドベンチャーゲーム、ボードゲームなど、5つのケーススタディを提供します。設計の正しさに関する推論をサポートするために、プログラムの不変条件を記述および証明するための手法と、それらの不変条件を言語の大部分について自動的にチェックする決定可能性の証明を提示します。

これらの調査結果は、線形論理がインタラクティブな世界のモデリングと実行の基礎として機能する実りある表現言語であることを示しており、創造的システムの証明理論的方法論の使用に関する将来の調査を招いています。


1
これは、型理論自体ではなく、線形論理の使用のように聞こえます。
David Richerby、2015年

6
線形論理は型理論の基礎となるトピックです。この作品は、分野としての型理論の非常に一部です(「証明理論」の他のいくつかの作品は、型理論の中心ではなく、証明理論に固有です)。
Gasche

9

言語学では型理論の興味深い使用法があります。たとえば、Chung- chieh ShanChristianRétoréの言語学的作品をご覧ください。

以下は、カテゴリー文法に関するレトレの本の説明です。

この本は、ランベックの仕事によって開始された論理的伝統におけるカテゴリー文法の現代的で包括的な紹介です。これは、フィールドの基本的な結果を通じて学生と研究者を導き、多くの古典的な定理の現代的な証明と元の最近の進歩を提供します。数多くの例と演習が、言語的、計算的、論理的な観点から、これらの結果の動機と応用を示しています。Lambek微積分とその変種、および対応する文法は、これらの講義ノートの中心にあります。これらのカテゴリー文法の主要な機能である章は、非常に洗練された構文セマンティックインターフェイスです。さらに、Grailパーサーで例示されているように、効率的な解析アルゴリズムを提供するため、これらの計算に線形論理証明ネットを適合させます。

次の引用は、Shanの言語的副作用の本の章の紹介にあります。

このペーパーでは、自然言語の見かけ上の非合成性の事例をプログラミング言語の事例に関連付けます。それは砂時計のような形をしています。まず、§1から、構成意味論の構築に役立つ構文と意味のインターフェースへのアプローチから始めます。そのアプローチは、プログラミング言語での計算上の副作用と、自然言語での言語的な副作用のアナロジーによって私が呼ぶものとの間のアナロジーを描くことです。

この接続は、言語学者だけでなくコンピュータサイエンティストにも役立ちますが、ここでは技術移転の後者の方向に焦点を当てます。継続は、計算上の副作用の処理に役立ちました。§2では、セマンティクスの継続のための新しいメタ言語を紹介します。

私が紹介するメタ言語は、プログラミング言語と自然言語の両方を分析するのに役立ちます。直感的には、§3の最初の使用について調査し、§4でこの処理の利点を指摘します。

§5で自然言語に目を向けて、私はこの見方がクリス・バーカーにどのように役立ったかを詳しく説明し、バインディングとクロスオーバー、およびwh質問と優位性を研究します。私はまた、継続を使用して、特に北京語で数量詞とwh-indefiniteスコープを研究しましたが、§6では、これらのさらなる展開をスケッチする余地しかありません。


9

以下のためカリー・ハワード対応、タイプがタイプとして命題と命題として解釈することができます。

この結果として、型理論は、証明に形式的論理を使用する文字通りあらゆる分野に適用できます。これには、回路検証、実際の分析、シンボリックロジック、ジオメトリなどがあります。

たとえば、一部の自動化された校正チェックツールは、この原則を使用して機能します。これらのツールは、一部の型システムで特定の用語を型チェックすることにより、校正の有効性をチェックします。LFプルーフチェッカーは、HOL Lightと同様に、このアプローチに基づいています。アプリケーションの例として、証明運搬コードはLFを使用して、信頼できないコードのメモリ安全性の証明をチェックしました。この種の証明チェッカーを使用する利点は、実装が非常に簡単になるため、実装が正しいことを高い保証を得られることです。たとえば、次の論文を参照してください。

小さな証人とファンデーションプルーフチェッカー。Dinghao Wu、Andrew W. Appel、Aaron Stump。PPDP 2003。


これは役立つかもしれません:math.ucr.edu/home/baez/rosetta.pdf
仮名

これが質問に答えるとは思いません。実際のアプリケーションはどうですか?
Yuval Filmus、2015年

@YuvalFilmus「実際の」を定義しますか?
David Richerby、2015年

1
回路検証、実際の分析、シンボリックロジック、またはジオメトリについて何か新しいことを証明するために型理論が使用されているかどうかを知っていますか?それとも、誰かが20ページの型理論を使って、小学校の教科書で3行かかることを証明するケースについて話しているだけなのでしょうか?
David Richerby、2015年

@Davidこの答えは、原則として型理論を使用して証明できることです。また、ルール110はチューリング完全であるため、原則として、セルラーオートマトンを使用して証明を行うことができます。前者の発言は後者と同じくらい無意味だと思います。
Yuval Filmus、2015年

7

依存型のアプリケーションを説明する興味深い記事は、 The Pi of the Powerです。これは、Agdaを使用して興味深い問題を解決する方法を示しています。

別の良い例は、リソース制御への依存型の使用です。良い例は、Edris of Idrisのファイル管理APIです。たとえば、ファイルから行を読み取る関数には次のタイプがあります

readLine  : { [FILE_IO (OpenFile Read)] } Eff String

この関数は、ファイルが開かれている場合にのみ適用できることを指定しています。中括弧内のリストは、使用可能な効果を示しています。この場合、この関数にはファイルを読み取り用に開く効果が必要です。

エフェクトライブラリの詳細については、こちらをご覧ください

以下に報告されたように、1つの以上のアプリケーションを同時実行のための依存型の使用である記事イドリスの作成者。


1
その他の例が追加されました。
ロドリゴリベイロ

3

jmiteの回答で述べたように、回路/ハードウェア/電子機器検証における高次論理/タイプ理論は数十年前から存在しており、今では非常に日常的であり、まだ活発な研究分野ではありますが、1990年代まで。Coqとそのタイプロジックは、特に低レベルゲートロジックからはるかに高いレベル/オーダー構造/サブシステムに至るまで、回路/ハードウェア/電子機器の検証に多く適用されています。ここにいくつかの重要な参照があります


1
ただし、公平に言えば、実際のハードウェア検証の大部分はモデル検査を使用して行われました。モデル検査は、一般に型理論とは無関係の検証技術です(ただし、最近ではブリッジが使用されています)。型理論は、ハードウェア記述言語(プログラミング言語から遠く離れていない)を構築するために使用されており、提供する言語のほとんどはこのカテゴリに属し、ハードウェア検証用に設計された一部の証明アシスタント(特に、元のHOLですが、最も使用されているPVSではありません)は、型理論のカレーハワード転置です。
Gasche 2015年

ハードウェア検証の背景が深い場合は、コンピュータサイエンスチャットで詳細を聞くのは興味深いことですが、この分野では、たとえばモデルチェックと型理論の間で、狭い/明確な線/一般化を描くのは容易ではないと考えます。非常に微妙な履歴分析を行うことで、目的の異なる2つの異なる分野間のつながりを包括的に明らかにしたり、つなぎ合わせたりできます。場合によっては、どちらかの分野の専門家の能力を個別に超えていることもあります。参照全体は、さらに分析できる強力なつながりを示しています。 ..
vzn 2015年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.