線形論理のパラメトリック性


9

ような関数についての自由パラメトリック性定理を証明することができますか?[A]⊸[A]f:A.[A][A]fはリストを取り、常にその順列を返すと述べることになっています。

別の例:その関数fを証明する:\ forall A。(A⊸(A、A))⊸[A]⊸[A]f:A.(A(A,A))[A][A]は、常に1つの要素がコピーされた順列リストを返します。


1
はい、可能です。私たちはこのテーマを少し異なる設定(多態性、線形 -calculusπ)で調査しました
Martin Berger

回答:


7

いろいろな人がこの種の証明に興味を持っています。ニール・クリシュナスワミはこの特定の定理をここで述べました。Frank Pfenningが順序付けられたロジックの優れた例をいくつか示していることも確認しました。たとえば、がある場合、順序付けされた型システムでは、はリストと追加する必要があります。A,x:[A],y:[A]e:[A]exy

簡単に言えば、はい、私たちはあなたの最初の例を証明できます。ラムダ計算のコンテキストでは、論理関係ベースのアプローチがこのペーパーで説明されています。彼らは2つのステップであなたの定理を証明します:

  1. タイプのリレーショナル解釈を定義し、それを使用して、線形性を完全に無視する従来の自由定理を証明します。たとえば、「Theorems for Free!」で見られるのと同じ推論を基本的に使用します。与えられた、通常の自由定理は、が与えられたリストに存在する要素のみを含むリストをが返すことを示しています。個別の自由線形変数リストが与えられた場合、がいくつかのリストに評価されると推定しここで、。f:A.[A][A]fx1xnf[x1,...,xn][y1,...,ym]{y1,,ym}{x1,...,xn}
  2. 評価中は自由線形変数を保存する必要があることに注意してください。これにより、直線性を利用できます。もしの順列はありませんでした、それはいくつかのことを暗示する発生しないことができ、評価の際に失われたり複製されました。[y1,,ym][x1,...,xn]xi

しかし、効果のある言語を見ると、この種の定理はさらに面白くなり、そのような言語でそれらを証明する能力は悲しいことに制限されます。たとえば、同型について考え from System F. call-by-value設定では、非終端を追加すると、この同型が破られます。ただし、線形型を使用すると、同様の同型を復元できるはず。残念ながら、これを証明できる論理的な運用関係はありません。τA.(τA)AτA.(τA)A

そうは言っても、この同型と定理の両方を証明できる構文的方法もあります。これは線形設定では特に有用なアプローチのようであり、単純な定理を証明するための論理関係を設定するよりもはるかに負担が少ないです。

編集:あなたが尋ねたので、これはタイプ自由定理の構文証明の例ですある設定のは、永久にループし、任意のタイプの任意のコンテキストで適切に型指定されます。アイデアは、型の標準的な用語のセットを見つけ、それを使用して関数の可能な戻り値を決定することです。適切に型付けされた用語の健全性定理から始めます。A.(AA)A

定理(正準性)。場合次にどちらかΔ;Γe:τ

  • ev。これはような値。Δ;Γv:τ
  • en、、および自由変数を使用しようとしているために行き詰まっている用語またはΓΔ;Γn:τ
  • e

ここで、は、言語の同等性のあなたの好きな概念であり、は、自由型変数を含む環境です。自由変数を値と見なします。単純な言語の場合、この定理を正当化するために、単純な進歩と保存の議論を行うことができます。Δx

ここで、値、であることがわかりここで。eのタイプから、いくつかのケースが考えられます。f:A.(AA)Afλx.eA;x:(AA)e:A

  • eはペアと同等。とはタイプ値である必要があるため、このケースは不可能です。タイプコンテキストには変数がないため、そのような値はありません。A;x:(AA)(v1,v2):Av1v2AA
  • eは、自由変数を使用しようとする項に相当します。x
  • e発散します。この場合、 1つの可能な値:が与えられ。fλx.

2番目のケースが1つだけ残っているため、と仮定しここで、。これまでのところ、証明として、を確立しましたです。最後に、正則性定理をもう一度適用し、が発散する必要があることを確認します。タイプ値は変数のみですが、コンテキストには2つの変数があるため、場合は当てはまりません。e let(x1,x2)=x in eA;x1:A,x2:Ae:Afλx.let (x1,x2)=x in eeAexi

したがって、唯一の住人がいることになりは。A.(AA)Aλx.λx.let (x1,x2)=x in 

あなたはこの種の証拠の参照を求めましたが、私は良いものかわかりません。この種の推論は特定の分野でよく知られており、おそらくゲンツェンまでさかのぼります。それはシーケンシャル計算のための焦点を合わせた証明探索を連想させると言われていますが、私は接続が何であるか正確に知りません。

とは言っても、この比較的単純な方法をよく説明している現代の出版された作品は知りません。確かに、それはより単純な言語への適用性が少し制限されています。一方、「Theorems for Free!」には影が薄いと思います。他、その結果、多くの上級研究者でさえ、「自由定理」というフレーズを聞くとすぐに論理関係を考えます。このような手法は、そのような証明へのより簡単な代替アプローチになる可能性があることに気づきません(特に線形型システムの場合)。

2番目の例については、あなたが望む自由な定理は実際には成り立たないと思います。たとえば、を整数型でインスタンス化してから、に指定したリストにない整数を返す関数を渡すことができます。おそらくは、あなたが考えていたタイプに近いでしょう。ただし、その場合でも、入力を複製する必要があるため関数はありません存在しません。AfA.(B.B(B,B))[A][A]B.B(B,B)


あなたが話しているこの構文法のリファレンスを与えることができますか?
ルカシュルー

良い参考になるかどうかはわかりませんが、投稿に例を追加しました。不明な点がある場合はお知らせください。
Nick Rioux

1
リニアが、ここで定理paramtricityのような得ることが証明論的分析を用いて、上のブログではありません:prl.ccs.neu.edu/blog/2017/06/05/...
マックス新

記事でリンクされているZhao et alの論文に加えて、Lars Birkedalと彼の共著者は、Reynoldsのパラメトリックモデルを彼らの論文Linear AbadiとPlotkin Logicの線形ケースに拡張しました。
Neel Krishnaswami

これは面白い。しかしれるベータ等価、ベータETA-同等または観察的同等性を意味するもの?観測的同等性の理論を確立するには、通常、多くの基本的な事実であっても論理的な関係が必要です。使用している線形論理への参照も役立ちます。ペアにetaを使用しますが、それが有効かどうかは通常は微妙です(少なくとも非線形コンテキストでは)。
Blaisorblade
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.