単項パラメトリックと二項パラメトリック


15

最近、Bernardy and Moulinの2012 LICS論文(https://dl.acm.org/citation.cfm?id=2359499)を見て、パラメトリック性に非常に興味を持ちました。このホワイトペーパーでは、依存型を持つ純粋な型システムの単項パラメトリック性を内部化し、構築を任意のアリティに拡張する方法のヒントを示します。

以前に定義されたバイナリパラメトリック性を見てきました。私の質問は、2項パラメトリック性を使用して証明できるが、単項パラメトリック性では証明できない興味深い定理の例は何ですか?また、2次ではなく3次パラメトリックで証明可能な定理の例を見るのも興味深いでしょう(ただし、nパラメトリックがn> = 2に等しいという証拠を見てきましたが、http://www.sato.kuisを参照してください).kyoto-u.ac.jp /〜takeuti / art / par-tlca.ps.gz

回答:


12

通常、バイナリパラメトリックを使用して、プログラムの等価性を証明します。単項モデルでこれを行うのは不自然です。なぜなら、一度に1つのプログラムについてのみ話すからです。

通常、単項プロパティのみに関心がある場合は、単項モデルを使用します。たとえば、最近の草案である「表面的部分構造型」では、単項モデルを使用して型の健全性の結果を証明しています。健全性は1つのプログラムの動作について説明するため(場合 、値v Aに分岐または減少する)、単項モデルで十分です。さらにプログラムの等価性を証明したい場合、バイナリモデルが必要になります。eAvA

編集:あなたが私たちの論文を見ると、それは単なる古い論理関係/実現可能性モデルのように見えることを実感しました。パラメーター(および他のモデル)をパラメトリックにするものについてもう少し言います。基本的に、モデルは、アイデンティティ拡張の補題を証明できる場合、パラメトリックです。つまり、任意の型式について、すべての自由な型変数がアイデンティティ関係にバインドされている場合、タイプ式はアイデンティティ関係になります。私たちはそれをレンマとして明示的に証明しません(理由はわかりませんが、運用モデルを実行するときに必要になることはめったにありません)が、このプロパティは言語の健全性に不可欠です。

パラメトリック性の「関係」と「同一性関係」の定義は、実際にはちょっとしたものです。この自由は、より高い種類や依存型などの派手な型をサポートしたい場合、またはより意味のあるセマンティック構造を使用したい場合に実際に不可欠です。私が知っているこの最もアクセスしやすいアカウントは、ボブ・アトキーのドラフト論文「高等者のための関係パラメトリック性」にあります。

カテゴリ理論に対する優れた食欲がある場合、これは、Rosoliniの論文Reflexive Graphs and Parametric Polymorphismで抽象的な方法で最初に定式化されました。その後、Dunphy and Reddyの論文Parametric Limitsでさらに開発され、Birkedal、Møgelberg、PetersenによるParametric Polymorphismのドメイン理論モデルでさらに開発されました。


5

これはニールの答えへのコメントになりますが、少し長いです。ラスマス・ピーターセンからのヒントに促されて、私はモーゲルベルクの論文(私のものを強調する)で以下を見つけました。

Ivar Rummelhoff [36]は、異なるPCAのモデルごとの自然数のエンコードを研究し、これらのモデルの一部では、エンコードが自然数以上を含むことを示しました。したがって、これらのモデルはパラメトリックにすることはできません。彼はそれについて言及していませんが、これは、モデルごとの自然数のエンコードが単項パラメトリックであることを簡単に示すことができるため、単項パラメトリックがバイナリ(リレーショナル)パラメトリックと異なることを示しています。

引用された論文は、PER-modelsのPolynatです。


3

これに答える際に、もう少し要約させてください。各アリティで、次の状況があります。n項の関係Rは、R x)を定義することにより、n + 1 )項の関係に埋め込むことができますnnRn+1RバツyRバツy=バツ[1 ..n]nn+1n+1n、これは上行く無限。より多くの関係はより強いパラメトリック性を意味し、より少ない関数ファミリーは「パラメトリック」と見なされることを意味するため、「真のパラメトリック性」は限界で得られるものであり、各最終的なパラメトリック性はそれに近似することを理解しています。

これらの不定関係は、Jung-Tiuryn関係とも呼ばれる「さまざまなアリティのクリプキ論理関係」として形式化されています。 JungとTiurynは、そのような無限のパラメトリック性がラムダ定義可能性を特徴付けるのに十分であることを示しました。を特徴づけるのに十分であることを示し O'HearnとRieckeは、シーケンシャルPCFを含むプログラミング言語の完全な抽象モデルを特徴づけるのに十分であることを示しました。これらは基本的で美しい結果です!

したがって、単項パラメトリック性は、真のパラメトリック性の最も単純で表現力の低い近似であり、バイナリパラメトリック性は少し良くなります。あなたの質問は「どれだけ良い」ですか?私の印象はそれがはるかに良い。その理由は、単項レベルでは、「アイデンティティ関係」は真の関係であり、それはあまり意味がありません。バイナリレベルでは、「同一関係」は平等です。そのため、単項レベルからバイナリレベルに移行する際に、パラメトリック性のパワーが突然上昇します。その後、ますます洗練されます。

Kurt Sieberは、これらの問題について、シーケンシャル性アルゴルに似た言語についてある程度詳しく研究しています。


2

おそらく、バイナリパラメトリックのアプリケーションについて読むのが最も簡単な論文は、Wadlerの無料定理です!

実際、バイナリパラメトリック性はパラメトリック性の論文で最もよく言及されているものなので、私はこの質問に少し驚いています。オリジナルのレイノルズ紙「型、抽象化、およびパラメトリック多相性」でさえ、それをどこでも言及しています。広く知られていないのはむしろ単項パラメトリック性です。


これは素晴らしい論文ですが、バイナリパラメトリックに精通しています。バイナリパラメトリックが単項パラメトリックよりも強力な理由を明確に説明したかったのです。
クリストファーモンサント

私は今、いくつかの精緻化を追加しましたが、それは明らかであると思われましたが、広く知られていません。そのため、ここに文書化するのが良いようです。
Udayレディ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.