依存型の型推論を決定できないのはなぜですか?


42

依存型システムは推論可能ではないが、確認可能であることを述べました。なぜそうなのか、また、型が値によってインデックス付けできる「依存性」の限界があるかどうか、それより下では型推論が可能で、それより上ではできないという簡単な説明があるのだろうかと思いました。


確かではありませんが、推測を使用して計算が停止したかどうかを判断できると思います。
jmite

これはプログラミング言語の型変換に関連していますか?その未解決の問題
-vzn 2013年

もう1つの理由は、従属型がプリンシパル型を許可しないことです。のタイプは何ですか?λa.a
jmite

回答:


36

依存型理論のかなり単純なバージョンについて、Gilles Dowekは、空でないコンテキストでのタイパビリティの決定不能性の証明を与えました。

Gilles Dowek、 -calculusのタイパビリティの決定不能性λΠ

ここで見つけることができます

まず、その論文で証明されていることを明確にしましょう:彼は、抽象化に関する注釈のない従属計算では、空でない文脈で用語の型付け可能性を示すことは決定できないことを示しています。これらの仮説の両方が必要です:空のコンテキストでは、型付けは単純型付きの -calculus(Hindley-Milnerによって決定可能)の型付けに減少し、抽象化の注釈により、通常の型指向アルゴリズムが適用されます。λ

考え方は、Post通信の問題を型変換の問題としてエンコードし、2つの特定の型が変換可能な場合にのみ型付け可能な用語を慎重に構築することです。これは、この計算に常に存在する正規形の形状に関する知識を使用します。この記事は短く、よく書かれているので、ここではこれ以上詳しく説明しません。

system-Fのような多態性計算では、型の抽象化とアプリケーションを推測し、上記のようにの注釈を省略できると便利です。これも決定不能ですが、証明はずっと難しく、質問はかなり前から開かれていました。問題はウェルズによって解決されました。λ

JB Wells、System Fのタイプとタイプチェックは同等であり、決定できません

これはここで見つけることができます。私が知っているのは、System Fでの型チェックに対する半統一の問題(汎用数量詞のモジュロによるインスタンス化であり、決定不能)を減らすことだけです。

最後に、依存するファミリの居住が決定できないことを示すのは非常に簡単です。単に、Post問題をコンストラクタインデックスにエンコードします。以下は、議論をスケッチしたニコラス・オウリーによるスライドです。

「制限」があるかどうかは、依存型で何をしようとしているかに大きく依存します。また、決定可能、または少なくとも使用可能になるように近似しようとする多くの近似があります。しかし、これらの質問はまだ活発な研究の大部分です。

考えられる手段の1つは、「依存関係タイプ」のフィールドです。そこでは、タイプ依存関係の表現の言語が制限され、決定可能なチェックが可能になります(例:Liquid Types)。ただし、これらのシステムでも完全な型推論を決定できることはまれです。


液体タイプのリンクが壊れています
マイケルズノウデン

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