ユニオン型を持つラムダ項の特性評価


29

多くの教科書は、ラムダ計算の交差タイプをカバーしています。交差の入力規則は、次のように定義できます(サブタイプ付きの単純に入力されたラムダ計算の上)。

Γ⊢M:T1Γ⊢M:T2Γ⊢M:T1∧T2(∧I)Γ⊢M:⊤(⊤I)

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

  • ラムダ項は、強く正規化する場合に限り、ルールを使用せずに入力できます。⊤I
  • ラムダ用語は含まないタイプ認めそれが正規形を有しているときに限ります。⊤

交差点を追加する代わりに、ユニオンを追加するとどうなりますか?

Γ⊢M:T1Γ⊢M:T1∨T2(∨I1)Γ⊢M:T2Γ⊢M:T1∨T2(∨I2)

単純型、サブタイプ、およびユニオンを持つラムダ計算には、同様の興味深い特性がありますか?ユニオンで入力可能な用語はどのように特徴付けられますか?


興味深い質問。OOPからのインターフェースはこれに対応していると言えますか?
— ラファエル

回答:


11

最初のシステムでは、サブタイピングと呼ばれるこれらの2つのルールがあります。

Γ,x:T1⊢M:SΓ,x:T1∧T2⊢M:S(∧E1)Γ,x:T2⊢M:SΓ,x:T1∧T2⊢M:S(∧E2)

彼らはのための排除規則に対応。それらがなければ、結合iveは多かれ少なかれ役に立たない。∧∧

2番目のシステム(および→を使用して、∨→)、サブタイピング規則上記無関係である、と私はあなたが考えていた付属のルールは以下の通りだと思います。⊥

Γ,x:T1⊢M:SΓ,x:T2⊢M:SΓ,x:T1∨T2⊢M:S(∨E)Γ,x:⊥⊢M:S(⊥E)

何それの価値のために、このシステムは、入力することができます(使用⊥ Eの正規形を持っていますが、強く正規ではないだけのシンプルなタイプで入力することができない、ルールを)。(λx.I)Ω:A→A⊥E


ランダムな考え:(これはTCSで尋ねる価値があるかもしれません)

これにより、関連するプロパティが次のようなものであると推測されます。

  • λ項型が含まれていない認め⊥ときに限りM Nは、全ての通常の形式はN正規形を有しています。(M⊥MNNは両方のテストに失敗しますが、上記のλ項は合格します)δ
  • λ-用語の使用せずに入力することができ⊥ Eの IFFルールM Nを強くすべて強く正規化のために正規化されたNM⊥EMNN。

演習:私が間違っていることを証明します。

また、これは退化したケースのようです。おそらく、この男を写真に追加することを検討すべきです。これまで私が覚えているとして、それは得ることができるようになる?A∨(A→⊥)


サブタイピングルールについての良い点は、ユニオン型が交差点(矢印に直交して入力される)ほど自然ではないことを示しています。第二部については、もう少し考える必要があります。
— ジル 'SO-悪

私が思うにあなたが組合の種類について話している場合には、運動を答えます。M=(λx.xx)(λy.y)
— jmad

call / ccについて:ラムダ項(ラムダ項や別のフレームワークなど)だけでなく、型システムはより複雑な論理システムであり、ユニオン型は無関係かもしれません。
— -jmad

@jmad:?確かに、交差点の種類は、この用語を入力するために必要な:-(たぶん一緒に労働組合との交点を考慮することは興味深いものになるだろう
— ステファン・ヒメネス

単純型(rs。交差型)ではなく、共用体型(rs。交差型)で入力できるλ項に興味があります。
— -jmad

16

交差点タイプが正規化のクラス(強い、頭、弱い)を特徴づけるのに適しているのに対し、他のタイプシステムではできない理由を説明したいだけです。(単純な型指定またはシステムF)。

M2M1→M2M1

(λx.Mxx)N→MNN

MNNN

M:T1→T2→T3N:T1N:T2
With intersection types you can transform this into:
M:T1∧T2→T1∧T2→T3N:T1∧T2
and then the crucial step is now really easy:
(λx.Mxx):T1∧T2→T3N:T1∧T2
so (λx.Mxx)N can by typed with intersection types.

Now about union types: suppose you can type (λx.xx)(λy.y) ユニオン型を使用すると、次のように入力することもできます λx。バツバツ そして、いくつかのタイプを取得する S、T1、…

バツ:T1∨T2∨⋯∨Tn⊢バツバツ:S
しかし、あなたはまだそれを証明する必要があります 私、 バツ:T私⊢バツバツ:S さえ不可能だと思われる S ユニオン型です。

これが、ユニオン型の正規化について簡単に特徴付けられるとは思わない理由です。

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