タイプの「クラス」間の関係を証明する方法は?


8

Effects as Sessions、Sessions as Effectsを読んだ後、両者が同等であることの証明がどのように行われるのか、あるいは、セッションタイプがタイプと効果システムであることの証明がどのように行われるのかについて考えていました。

より一般的な方法で、型の異なる「クラス」*間の関係(たとえば、同等性)をどのように証明できますか?オーチャードと吉田が行った表現力テストで十分でしょうか?

[*]:正しく定義する方法がわかりません。「種類の種類」や「種類の種類」を使用したくありません。

回答:


6

このような質問に対する1つのアプローチは、エンコーディングを使用することです。

言語と言語あり、それらが何らかの形で「同じ」であることを示すには、エンコーディングを見つけることでこれを行うことができます。L 2L1L2

[[]]:L1L2

そして、すべてのプログラム、次のことが成り立つことを示します。 M NL1M,N

M1Niff[[M1]]2[[M2]]

ここで、はのプログラム同等性の選択された概念です。型付き言語でこれを行うには、通常、次のようなものが当てはまるような型付け環境に拡張された関数を介してタイプをマップします。iLiL1L2

Γ1M:αimpliesΓ2[[M]]:α
ここで、は入力判断です。アプローチ全体を完全抽象化と呼びます。iLi

「Church-Turingの普遍性の呪い」を回避するために、通常はに条件を課します。たとえば、構成的である、または単射的な名前変更の下で閉じられるなどです。が満たす条件が多いほど、完全な抽象化結果が強くなります。[[]][[]]

これもオーチャードと吉田がやろうとしていることです(定理1〜5)。

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