チューリング完全型付きラムダ計算が存在しますか?


回答:


37

はい、そうです。型付きラムダ計算の多くは、設計上、厳密に正規化された項のみ受け入れるため、任意の計算を表現できません。しかし、型システムは好きなものにできます。それを十分に広くすると、すべての決定論的計算を表現できます。

ラムダ計算のチューリング完全なフラグメントを含む自明な型システムは、すべての用語を(top typeで)よく型付けされたものとして受け入れます。

ΓM

より現実的には、静的に型付けされた関数型プログラミング言語のコアには、型付けされたラムダ計算があり、これにより、固定小数点コンビネーターが型付けされています。たとえば、単純に型指定されたラムダ計算(またはML型システムまたはシステムF、または任意の他の型システム)から開始し、ような固定小数点コンビネーターを作成するルールを追加しますよく型付けされています。 上記の規則は、Γ F T TY=λfλバツfバツバツλバツfバツバツ Y

ΓfTTΓYfTΓfTTΓλバツfバツバツλバツfバツバツT
Yfは、その構成要素が適切に型付けされていませんが、完全に型付けされていません。簡単な修正方法は、固定小数点コンビネーターを言語定数として追加し、デルタ規則を提供することです。それから、タイプシステムとタイプ保存がある減少意味論を持つのは簡単な問題です。純粋なラムダ計算から定数を持つラムダ計算の領域に逃げます。
Γ修正するTTT修正するff修正するf

純粋なラムダ計算に固執する興味深いタイプシステムは、交差タイプを持つラムダ計算です。

ΓMT1ΓMT2ΓMT1T2ΓM

交差タイプには、正規化に関して興味深い特性があります。

  • ラムダ項は、強く正規化する場合に、ルールを使用せずに入力できます。
  • ラムダ項は、次を含まない型を認めます は、正規形を持っている場合にます。

交差タイプにこのような顕著なスコープがある理由については、ユニオンタイプ持つラムダ項の特性化をご覧ください。

したがって、チューリング完全言語を定義する型システム(すべての用語が適切に型付けされているため)と、終了計算の単純な特性評価があります。もちろん、この型システムは正規化を特徴付けるため、決定できません。

ルール名および:正式な意味はありませんが、意図的に選択されています。これらが導入ルールですので、「導入」の略-彼らは記号(紹介または行の下型に)。二重に、シンボルが行の上ではなく下に表示される場合、除去ルールがあります。たとえば、単純に型指定されたラムダ計算のラムダ式を型チェックする規則は\ rightarrowの導入規則であり、アプリケーションを型チェックする規則は\ rightarrowの除去規則です

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