依存型システムは推論可能ではないが、確認可能であることを述べました。なぜそうなのか、また、型が値によってインデックス付けできる「依存性」の限界があるかどうか、それより下では型推論が可能で、それより上ではできないという簡単な説明があるのだろうかと思いました。
依存型システムは推論可能ではないが、確認可能であることを述べました。なぜそうなのか、また、型が値によってインデックス付けできる「依存性」の限界があるかどうか、それより下では型推論が可能で、それより上ではできないという簡単な説明があるのだろうかと思いました。
回答:
依存型理論のかなり単純なバージョンについて、Gilles Dowekは、空でないコンテキストでのタイパビリティの決定不能性の証明を与えました。
Gilles Dowek、 -calculusのタイパビリティの決定不能性
まず、その論文で証明されていることを明確にしましょう:彼は、抽象化に関する注釈のない従属計算では、空でない文脈で用語の型付け可能性を示すことは決定できないことを示しています。これらの仮説の両方が必要です:空のコンテキストでは、型付けは単純型付きの -calculus(Hindley-Milnerによって決定可能)の型付けに減少し、抽象化の注釈により、通常の型指向アルゴリズムが適用されます。
考え方は、Post通信の問題を型変換の問題としてエンコードし、2つの特定の型が変換可能な場合にのみ型付け可能な用語を慎重に構築することです。これは、この計算に常に存在する正規形の形状に関する知識を使用します。この記事は短く、よく書かれているので、ここではこれ以上詳しく説明しません。
system-Fのような多態性計算では、型の抽象化とアプリケーションを推測し、上記のようにの注釈を省略できると便利です。これも決定不能ですが、証明はずっと難しく、質問はかなり前から開かれていました。問題はウェルズによって解決されました。
JB Wells、System Fのタイプとタイプチェックは同等であり、決定できません。
これはここで見つけることができます。私が知っているのは、System Fでの型チェックに対する半統一の問題(汎用数量詞のモジュロによるインスタンス化であり、決定不能)を減らすことだけです。
最後に、依存するファミリの居住が決定できないことを示すのは非常に簡単です。単に、Post問題をコンストラクタインデックスにエンコードします。以下は、議論をスケッチしたニコラス・オウリーによるスライドです。
「制限」があるかどうかは、依存型で何をしようとしているかに大きく依存します。また、決定可能、または少なくとも使用可能になるように近似しようとする多くの近似があります。しかし、これらの質問はまだ活発な研究の大部分です。
考えられる手段の1つは、「依存関係タイプ」のフィールドです。そこでは、タイプ依存関係の表現の言語が制限され、決定可能なチェックが可能になります(例:Liquid Types)。ただし、これらのシステムでも完全な型推論を決定できることはまれです。