ラムダキューブ

ラムダキューブ。矢印の方向が包含方向です。

数理論理学型理論においてλキューブラムダキューブとも表記される)は、ヘンク・バレンドレト[1]によって導入された枠組みであり、単純型付きλ計算の一般化である構成計算の様々な次元を調査するものである。キューブの各次元は、項と型の間の新しい種類の依存関係に対応する。ここで「依存関係」とは、項または型が別の項または型を束縛する能力を指す。λキューブの各次元は、以下のものに対応する。

  • x 軸 ( ): 項に依存できるタイプ。依存タイプに対応します。
  • y軸( ):多態性に対応する、型に依存できる項
  • z軸():他の型に依存できる型。(結合)型演算子に対応します。

これら3つの次元を様々な方法で組み合わせることで、立方体の8つの頂点が生成され、それぞれが異なる種類の型付きシステムに対応します。λキューブは、純粋型システムの概念に一般化できます。

システムの例

(λ→) 単純に型付けされたラムダ計算

λキューブに見られる最も単純なシステムは、単純型ラムダ計算(λ→とも呼ばれる)である。このシステムでは、抽象化を構築する唯一の方法は、項を項に依存させることであり、その型付け規則は以下の通りである。

(λ2) システムF

システムF(「2階型付きラムダ計算」からλ2とも呼ばれる)[2]には、 で記述される別のタイプの抽象化があり、次の規則に従って、項が型 に依存できるようにします。

a で始まる用語は多態的と呼ばれます。これは、 ML系言語における多態的関数と同様に、異なる型に適用することで異なる関数が得られるためです。例えば、多態的恒等式は

楽しい x  ->  x

OCaml型は

' a  ->  ' a

つまり、任意の型の引数を取り'a、その型の要素を返すことができます。この型はλ2において型 に対応します

ω) システムFω

システムFでは、他の型に依存する型を提供するための構文が導入されています。これは型コンストラクタと呼ばれ、「型をとして持つ関数」を構築する方法を提供します[3]このような型コンストラクタの例としては、与えられた型のデータでラベル付けされた葉を持つ二分木の型があります。ここで、「」は非公式には「 は型である」という意味です。これは、型パラメータを引数として取り、型の値の型を返す関数です。具体的なプログラミングでは、この機能は、型コンストラクタをプリミティブとしてではなく、言語内で定義する機能に対応しています。前述の型コンストラクタは、OCamlにおけるラベル付けされた葉を持つ木の次の定義にほぼ対応しています

タイプ ' a  tree  =  |  ' a | ' a treeノード* ' a tree         

この型コンストラクタは他の型に適用して新しい型を取得できます。例えば、整数のツリーの型を取得するには次のようにします。

 int_tree  =  int ツリー

システムFは単独で使用されることは通常ありませんが、型コンストラクタの独立した機能を分離するのに役立ちます。[4]

(λP) ラムダP

LF論理フレームワークと密接に関連するλPシステム(λΠとも呼ばれる)には、いわゆる依存型があります。これらは項に依存できる型です。このシステムの重要な導入規則は、

ここで、 は有効な型を表します。新しい型構築子は、カリー=ハワード同型性を介して全称量化子に対応し、システム λP 全体は、含意を結合子としてのみ持つ一階述語論理に対応します。具体的なプログラミングにおけるこれらの依存型の例としては、特定の長さのベクトルの型が挙げられます。長さは項であり、型はそれに依存します。

(λω) システムFω

システムFωは、システムFの構築子とシステムFの型構築子の両方を組み合わせたものです。 したがって、システムFωは型に依存する項型に依存する型の両方を提供します

(λC) 構成の計算

構成計算(立方体ではλC、あるいはλPωと表記される)[1] : 130 において、これら4つの特徴は共存し、型と項はどちらも型と項に依存できる。λ→ において項と型の間に存在する明確な境界は、普遍型を除くすべての型がそれ自体型を持つ項であるため、ある程度消滅している。

形式的定義

単純型付きラムダ計算に基づくすべてのシステムと同様に、キューブ内のすべてのシステムは2つのステップで与えられます。まず、生の項とβ-縮約の概念、次にそれらの項を型付けすることを可能にする型付け規則です

ソートの集合は と定義され、ソートは文字 で表されます。また、変数の集合も存在し、文字 で表されます。キューブの8つのシステムの生の項は、次の構文で与えられます。

および が で自由に発生しない場合を示します

環境は、型付きシステムでは通常、次のように与えられる。

β-還元の概念は、立方体内のすべての系に共通です。これは規則によって表され、与えられます。その反射的推移的閉包は と表されます

次の型指定ルールもキューブ内のすべてのシステムに共通です。

システム間の違いは、次の 2 つの型付け規則で許可されるソートのペアにあります。

システムとルールで許可されているペアの対応は次のとおりです。

λ→はいいいえいいえいいえ
λPはいはいいいえいいえ
λ2はいいいえはいいいえ
λω はいいいえいいえはい
λP2はいはいはいいいえ
λP ωはいはいいいえはい
λωはいいいえはいはい
λCはいはいはいはい

立方体の各方向は 1 つのペア (すべてのシステムで共有されるペアを除く) に対応し、各ペアは用語とタイプ間の依存関係の 1 つの可能性に対応します。

  • 用語が用語に依存できるようにします。
  • 型が用語に依存できるようにします。
  • 用語がタイプに依存できるようにします。
  • 型が型に依存できるようにします。

システム間の比較

λ→

得られる典型的な導出は、矢印のショートカットで または であり、これは通常の λ→ の(型 の)恒等式に非常に似ています。使用されるすべての型はコンテキスト内に出現する必要があることに注意してください空のコンテキストで実行できる唯一の導出は であるためです

計算能力は非常に弱く、拡張多項式(条件演算子を伴う多項式)に相当する。[5]

λ2

λ2では、そのような項は のように得ることができます。カリー・ハワード同型性を介して全称量化として読むと、これは爆発の原理の証明と見ることができます。一般に、λ2はのような非述語、つまりそれ自身を含むすべての型にわたって量化される項を持つ可能性を追加します。この多型性により、λ→では構成できなかった関数の構築も可能になります。より正確には、λ2で定義可能な関数は、2階ペアノ算術において証明可能全体となる関数です。[6]特に、すべての原始再帰関数は定義可能です

λP

λPでは、項に依存する型を持つことができるということは、論理述語を表現できることを意味します。例えば、以下は導出可能です。これは、カリー・ハワード同型性を介して、の証明に対応しますしかし、計算の観点から見ると、依存型を持つことは計算能力を向上させるのではなく、より正確な型特性を表現できる可能性を高めるだけです。[7]

変換規則は、依存型を扱う際に非常に重要になります。なぜなら、この規則によって、型内の項に対して計算を実行できるようになるからです。例えば、 と がある場合、型付けできるようにするには、変換規則[a]を適用して を得る必要があります。

λω

λωでは、次の演算子が定義可能です。導出はλ2ですでに得られますが、多型性は規則も存在する 場合にのみ定義できます

コンピューティングの観点から見ると、λωは非常に強力であり、プログラミング言語の基礎として考えられてきました。[10]

λC

構成計算はλPの述語表現力とλωの計算力の両方を備えているため、λCはλPωとも呼ばれます。[1] : 130 つまり、論理面でも計算面でも非常に強力です

他のシステムとの関係

オートマトンシステムは、論理的な観点からはλ2に類似しています。ML系言語は、型付けの観点から見ると、λ→とλ2の中間に位置します。ML系言語は、限られた種類の多相型、つまり冠頭正規形(prenex normal form)の型を許容するからです。しかし、再帰演算子を備えているため、計算能力はλ2よりも優れています。[7] Coqシステムは、λCの拡張に基づいており、型付け不可能な型を1つだけではなく、線形階層構造を持つユニバースと、帰納的型を構築する機能を備えています。

純粋型システムは、任意のソート、公理、積、抽象化規則を持つキューブの一般化と見ることができます。逆に、ラムダキューブのシステムは、2つのソート、唯一の公理、そしてとなる規則を持つ純粋型システムとして表現できます[1]

カリー・ハワード同型性により、ラムダキューブ内のシステムと論理システムの間には1対1の対応関係がある[1]

キューブのシステム論理体系
λ→(零階)命題計算
λ2第二階命題論理
λω 弱高階命題計算
λω高階命題論理
λP(一階)述語論理
λP2二階述語論理
λP ω弱い高階述語計算
λC構成の計算

すべての論理は含意的です(つまり、接続詞はとのみです。しかし、二階以上の論理では、またはなどの他の接続詞を述語的に定義することができます。弱高階論理では、高階述語には変数がありますが、それらに対する量化はできません

共通の性質

立方体内のすべてのシステムは

  • チャーチ=ロッサーの性質: かつ のとき、かつなるようなもの存在する
  • 主語削減プロパティ: if and then ;
  • 型の一意性: ifthen

これらはすべてジェネリック純粋型システムで証明できます。[11]

キューブのシステムにおいて適切に型付けされた項はどれも強く正規化されるが[1]、この性質はすべての純粋型システムに共通するわけではない。キューブ内のシステムはチューリング完全ではない。[7]

サブタイピング

しかし、サブタイピングはキューブでは表現されません。高階限定量化と呼ばれる、サブタイピングと多態性を組み合わせたシステムは実用上興味深いものであり、さらに限定型演算子へと一般化できます。純粋に関数的なオブジェクトの定義を可能にするためのさらなる拡張。これらのシステムは、ラムダキューブの論文が発表された後に、一般的に開発されました。[12]

立方体のアイデアは、数学者ヘンク・バレンドレト(1991)によるものです。純粋型システムの枠組みは、ラムダ立方体を一般化します。つまり、立方体のすべての角、そして他の多くのシステムを、この一般的な枠組みのインスタンスとして表現できるということです。[13]この枠組みはラムダ立方体より数年前に生まれました。バレンドレトは1991年の論文で、この枠組みにおける立方体の角も定義しています。

参照

  • オリヴィエ・リドゥーは、『研究指導要領』[14]の中で、ラムダ立方体の切り抜きテンプレートと、8つの頂点を面に置き換えた正八面体としての立方体の双対表現、および12の辺を面に置き換えた正十二面体としての双対表現を示しています
  • 論理的立方体
  • 論理的六角形
  • 反対の正方形
  • 反対の三角形

注記

  1. ^ abcdef Barendregt, Henk (1991). 「一般化型システム入門」. Journal of Functional Programming . 1 (2): 125–154 . doi :10.1017/s0956796800020025. hdl : 2066/17240 . ISSN  0956-7968. S2CID  44757552
  2. ^ Nederpelt, Rob; Geuvers, Herman (2014). 型理論と形式的証明. Cambridge University Press. p. 69. ISBN 9781107036505
  3. ^ Nederpelt & Geuvers 2014, p. 85
  4. ^ Nederpelt & Geuvers 2014、p. 100
  5. ^ シュヴィヒテンベルク、ヘルムート(1975)。 「Definierbare Funktionen imλ-Kalkül mit Typen」。Archiv für Mathematische Logik und Grundlagenforschung (ドイツ語)。17 ( 3–4 ): 113–114 .土井:10.1007/bf02276799。ISSN  0933-5846。S2CID  11598130。
  6. ^ ジャン=イヴ・ジラール、イヴ・ラフォン、ポール・テイラー (1989). 『証明と型』 ケンブリッジ理論計算機科学論文集. 第7巻. ケンブリッジ大学出版局. ISBN 9780521371810
  7. ^ abc Ridoux, Olivier (1998). Lambda-Prolog de A à Z … ou presque (PDF) . [sn] OCLC  494473554
  8. ^ Angiuli, Carlo; Gratzer, Daniel (2024). 「2.1.3 型付け規則の型検査は誰が行うのか? および 2.2 依存型理論の構文に向けて」. 依存型理論の原理(PDF) . インディアナ大学およびオーフス大学. 2024年9月7日閲覧
  9. ^ Favier, Naïm (2023年8月17日). 「ラムダキューブの変換推論規則において、なぜ Γ ⊢ B′:s が必要なのか?」Computer Science Stack Exchange . 2024年9月7日閲覧
  10. ^ ピアス, ベンジャミン; ディーツェン, スコット; ミハイロフ, スピロ (1989).高階型付きラムダ計算におけるプログラミング. カーネギーメロン大学コンピュータサイエンス学部. OCLC  20442222. CMU-CS-89-111 ERGO-89-075.
  11. ^ Sørensen, Morten Heine; Urzyczyin, Pawel (2006). 「純粋型システムとλキューブ」. Curry-Howard同型性に関する講義. Elsevier. pp.  343– 359. doi :10.1016/s0049-237x(06)80015-7. ISBN 9780444520777
  12. ^ ピアス、ベンジャミン (2002).型とプログラミング言語. MIT Press. pp.  467– 490. ISBN 978-0262162098 OCLC  300712077
  13. ^ ピアス 2002, 466ページ
  14. ^ リドゥー 1998、70ページ
  1. ^ 変換規則の仮定は便宜上のものであり、代わりにメタ定理を証明することもできる[8] [9]

さらに読む

  • ペイトン・ジョーンズ、サイモン、マイヤー、エリック (1997).「Henk: 型付き中間言語」(PDF) . Microsoft . Henkは、表現力豊かな型付きラムダ計算のファミリーであるラムダキューブに直接基づいています
  • ロジャー・ビショップ・ジョーンズ著『純粋型システムの文脈におけるバレンドレヒトのラムダキューブ』
Retrieved from "https://en.wikipedia.org/w/index.php?title=Lambda_cube&oldid=1325900536"