型の二重性はどのように定義されますか?


12

ワドラーの再帰型で無料![1]、彼は2種類のおよび、そしてそれらは双対であると主張しました。特に、彼は型ことを指摘しましたは前者の双対ではありません。ここで問題となっている双対性は、論理におけるデモーガンの双対性とは異なるようです。上記の3つのタイプについて、タイプの二重性がどのように定義されているのか、なぜ2番目のタイプが最初のタイプのデュアルであり、3番目のタイプがそうでないのか疑問に思います。ありがとう。∀X.(F(X)→X)→X∃X.(X→F(X))×X∃X.X→(X→F(X))

[1] http://homepages.inf.ed.ac.uk/wadler/papers/free-rectypes/free-rectypes.txt


ここではあまり助けにはなりませんが、カテゴリ理論に聞こえます。
— アンソニー

回答:


8

この文脈では、二重性とは、あるケースでは最小の不動点を取り、別のケースでは最大の不動点を取ることを指します。私たちはどのような意味で理解しようとすべきである及びG = ∃ X 。(X → F (X ))× X再帰方程式の"最小"および"最大"ソリューションであるFは、(X )≅ X。L=∀X.(F(X)→X)→XG=∃X.(X→F(X))×XF(X)≅X

まず、及びGは、(自然の制限特定の技術的な仮定の下で、実際の固定点であるFを比較マップため)Vを:F (L )→ L及びW :G → F (G )で与えられる VLGFv:F(L)→Lw:G→F(G) と W (X 、(F 、X ))= F (λ Y :X

vxXg=g(F(λh:L.hXg)x)
は同型です。関数に適用したときに、 Fがファンクターである、つまり単調であるという事実を使用したことに注意してください。
w(X,(f,x))=F(λy:X.(X,(f,y)))(fx)
F

仮定に任意の溶液であり、F (Y )≅ Y媒介同型とU :F (Y )→ Y。次に、正準マップα :L → Y  および  β :Y → Gをαで定義します YF(Y)≅Yu:F(Y)→Y

α:L→Y and β:Y→G
および β
αf=fYu
したがって、 Lは他のソリューションからマップできるため最小であり、 Gは他のソリューションからマップできるため最大です。初期代数と最終代数について話をすることで、これらすべてをより正確にすることができますが、私の答えは短くて甘くして、コーディは代数についてとにかく説明しました。
βy=(Y,(u−1,y)).
LG

実際には、最小のソリューションは熱心なデータ型であり、最大のソリューションは遅延データ型です。たとえば、場合、最初のケースではAの有限リストを取得し、2番目のAの有限および無限リストを取得します。F(X)=1+A×XAA


私の答えは、とGが不動点であるという証拠がありません(Fについてのいくつかの仮定の下で、それは述べられていないかもしれません)。比較マップF (L )→ LおよびG → F (G )を書き留めるにはどうすればよいですか?LGFF(L)→LG→F(G)
— アンドレイバウアー

OK、Coqでマップとwを見つけました。vw
— アンドレイバウアー

他の候補があるように思えるため即ち、W '(X 、(F 、X ))= F (λ Y :Xw。誰かが何が起こっているのか説明できますか?w′(X,(f,x))=F(λy:X.(X,(f,x)))(fx)
— アンドレイバウアー

1
私はあなたがそれw'が同型であることを証明したと思いますが、それはあなたに有効な代数を与えますか?(そうすべきだと思いますが、間違っているかもしれません...)正方形が通勤するようには見えません。
— CAマッキャン

彼のメモ:homepages.inf.ed.ac.uk/wadler/papers/free-rectypes/…では、Wadlerが最初のバージョンを提供しています。ただし、w(X、(f、x))= F(unfold X k)(fx)のように少し書きます。これにより、合同代数の構造がより明確に表示され、ほぼ即座に適切なコアカーソルモルフィズムの交換が行われます。camcannが言うように、私はあなたの他のバージョンはこれらの正方形を通勤させないと思う。
— コーディ

7

答えは、F代数のレンズを通して明確に理解できます。カテゴリーCの再帰タイプのカテゴリー表現は、ファンクターF :C → Cを使用して大まかに指定できます。次に、F代数のカテゴリで動作します。ICF:C→CF

  • オブジェクトとして:Cのオブジェクトと射影 α :F (A )→ AAC
    α:F(A)→A
  • 矢印として:正方形

    F代数射

今、私がFで表される再帰型になるためは、このカテゴリで初期でなければなりません。IFI

  1. 射in:F(I)→I
  2. それぞれについて -代数(A 、α )射F O LのD :I → A適切な正方形通勤を行います。F(A,α)fold:I→A

今定義し。構築する方法をかなり明確であるF O リットルのDをちょうど取る: F O リットルのDを= λ I :I 。私α :I → A 棟I nは、私がしようとはしませんので、Wadlerはそれを説明し、少しトリッキーです。ただし、FがI=∀X.(F(X)→X)→Xfold

fold=λi:I.i A α:I→A
inFファンクターで、これは陽性要件とみなすことができます。

今、カテゴリー理論では、すべての矢印が逆になっている状況を考慮したいことがよくあります。この場合、与えられた、我々はのカテゴリを検討することができますFは -coalgebrasでFF

  • オブジェクトとして:Cのオブジェクトと射影 ω :Z → F (Z )ZC
    ω:Z→F(Z)
  • 矢印として、代数の場合のような正方形(ただし、αとβは逆になります)。Fαβ

次に、このカテゴリの端末オブジェクトを調べます。要件が逆になりました。T

  1. 射out:T→F(T)
  2. 各代数Zについて、射c o f o l d :Z → T。FZcofold:Z→T

これをどうやってやるの?Wadlerの規定だけでなく、私たちは取る。以前より同様に、我々は 、C 、O 、F O のL D = λ Z :Zを。(Zは、ωは、Z ):Z → Tは、 この構造は働いていないだろう、我々は代わりに取っていた場合はT = ∃ X 。X → (XT=∃X.(X→F(X))×X

cofold=λz:Z.(Z,ω,z):Z→T
。T=∃X.X→(X→F(X))

6

私の経験では、 -calculi の型の双対性を理解するための適切で実用的な方法は、π -calculusを使用することです。λπ

型をプロセス計算に変換(分解)すると、双対性が単純になります。入力は出力に対して二重であり、逆も同様です。双対性には(大したことではありません)。

πα=(Bool,Int)↑ααxx¯⟨false,7⟩α¯(v,w)vwα¯(bool,int)↓α¯xc(v,w).0

β=(int,(int)↑)↓(v,w)vwβ¯=(int,(int)↓)↑αα¯PαxQα¯xPQββ¯

∀X.(X,(X)↑)↓(v,w)vXwXx

x(vw).w¯v
∀X.(X,(X)↑)↓

プロセスレベルでの普遍的な定量化とは何ですか?単純な解釈があります:データが型変数によって型付けされた場合、データを出力の対象として使用することはできず、オブジェクトのみとして使用できます。そのため、このデータを検査することはできません。ただ渡すか、または忘れることしかできません。

∀X.(X,(X)↑)↓∃X.(X,(X)↓)↑

この理論は、[1、2、3]で詳細に説明されており、アクセスが困難な他のいくつかの作業で、偏光線形論理と4の双対性の概念に非常に正確に関連しています。

λλπλπλ

π

π

π

4 K.ホンダら、型付けされたパイ計算偏プルーフネットとの間の正確な対応。

5 R.ミルナー、プロセスとして機能。


1
re:タイプ∀X。(X、(X)↑)↓の住民数に関するあなたのポイント。パイ計算のための「自由定理」の類似物はありますか?もしそうなら、これはどこで議論されていますか?
— ドミニクマリガン

1
こんにちは、@ DominicMulligan、はい、「自由定理」があり、[1、2]でこれを少し調査しました。この方向にはもっと多くのことが言えると思います。
— マーティンバーガー

1
@MartinBerger:パラメトリック性を使用して、型付きpi計算のプロセス等価性の「正しい」概念を理解できますか?たとえば、システムFでは、パラメトリックな論理関係は文脈的同等性に対応します。類推により、私は、プロセス等価性の概念がパイ計算のパラメトリック論理関係に対応するものが特に興味深いと期待するでしょう。
— Neel Krishnaswami

@NeelKrishnaswami: Yes, that's an interesting question. We investigated this in [2] for the pi-calculus embedding System F fully abstractly and used the results in the full abstraction proof (e.g. a typed bisimulation characterisation). I don't think this has been explored more generally. For a start there are infinitely many typed π-calculi. And as we move away from nice, deterministic typed fragments, it's probably going to get harder. Almost all concurrent type-theory so far is for deterministic fragments. It would be fascinating to attempt far-reaching generalisations.
— Martin Berger

バイシミュレーションベースの特性化は、すべてのコンテキストで閉包を必要としないため、実用的な推論に役立ちます。
— マーティンバーガー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.