どの言語についてすでに観測的等価理論が存在しますか?


10

正確さを証明するために、Barendregtの純粋な型システム(PTS)のプログラム等価性使用可能な概念を探しています。欠けている、十分な特定の型システム。私の目標は、単にその概念を使用することであり、それ自体を調査することではありません。

この概念は「拡張的」である必要があります。特に、であることを証明するには、あることを証明するのに十分でなければなりません適切なタイプのすべての値。トン1t1t2vt1vt2vv

占領的同等性

占領的同等性は、すべての正しい補題を簡単に満たすことができますが、任意のPTSの表示セマンティクスは、かなり難しいようです。システムFの場合、すでに難しいように見えます。

文脈的/観察的同等性

明白な代替案は、さまざまな形の文脈的同等性です(2つの用語は、地上の文脈で区別できない場合は同等です)が、その定義はすぐには使用できません。さまざまな補題は証明するのは簡単ではありません。彼らはPTSのために証明されましたか?あるいは、理論は「明白な拡張」であるか、または理論が大幅に異なると信じる理由はありますか?

編集:私は上記の難しいことは言いませんでした。

簡単な部分:定義

同等性を定義することはそれほど難しいことではなく、その定義は多くの論文に記載されています(少なくともPlotkin 1975のPCFの研究から始まります。我々すべてのためならば地上コンテキスト、 -である、と同じ与える結果を。ここにはいくつかの選択肢があり、多くの選択肢があります。たとえば、強く正規化している言語で、グラウンドタイプの自然の場合、グラウンドコンテキストは自然を返すものでありは、と C C [ T 1 ] C [ T 2 ] C [ T 1 ] C [ T 2 ] A B Bt1t2CC[t1]C[t2]C[t1]C[t2]abab同じ数に評価します。非終了では、妥当な言語の場合、監視として「X終了」を使用するだけで十分です。これは、終了を監視するときに2つのプログラムが同等であれば、結果を監視するときにも同等であるためです。

難しい部分:証明

ただし、これらの論文では、この定義を実際に使用することがどれほど難しいかについて説明されていないことがよくあります。以下のすべての参考文献は、この問題に対処する方法を示していますが、必要な理論は人が考えるよりも難しいです。ことをどのように証明しますか?実際にケース分析とコンテキストの帰納を行いますか?あなたはそれをしたくありません。t1t2

Martin Bergerが指摘するように、代わりに、バイシミュレーション(Pittsによって行われる)または論理等価関係(Harperが単に「論理等価」と呼ぶ)のいずれかを使用する必要があります。

最後に、上で定義した拡張性をどのように証明しますか?

Harperは、かなりの賢さと論理的な関係を通じて、System Tのこれらの質問を10ページで解決しています。ピッツはもっとかかります。一部の言語はさらに複雑です。

これに対処する方法

私は実際にPTSの推測された等価性の理論に基づいて条件付きで証明をするように誘惑されますが、実際の理論は重要な議論を必要とするので、そのような推測がどれほど可能性が高いかわかりません。

私は次の作品を(詳細はしていませんが)知っています:

  • Andrew Pitts(たとえば、拡張システムFのATTAPL、および58ページの「操作ベースのプログラム等価理論」などのいくつかの論文)。
  • プログラミング言語の実用的な基礎(47〜48章)。これは、ピッツに触発されています(ただし、より単純な証明があると主張しています)。
  • プログラムの等価性の論理的研究。私は英語の要約を見つけることができませんが、それは直交する複雑さのように見える副作用(参照)に多大な労力を費やしているようです。

1
プログラムがすべて終了するため、タイプ理論の場合、操作上のコンテキストの一致を定義することは簡単です。ベースタイプで観測の概念を定義し(たとえば、終了、タイプでUnitで記述)、ベースタイプのすべての適切に型付けされた閉じたコンテキストについてとすると、 iff。PTSを使用すると、終了しない可能性があるため、少し複雑になります。P Q C [ ] C [ P ] C [ Q ] PQC[]C[P]C[Q]
Martin Berger

@MartinBerger:それは私がほのめかしている考えですが、すべてのCについて証明を行う必要があるため、それを直接証明することは驚くほど難しいです(質問でそれについてより詳しく説明します)。また、すべてのプログラムが終了した場合、使用した定義は、与えられたとおり、すべてのプログラムを識別します。
Blaisorblade、2015年

PTSには計算タイプとしての機能しかありませんか?もしそうなら、この優れた質問(と回答)は -equivalenceが純粋な型システムを終了するのに十分であることを示しているようです-計算を終了するためのコンテキスト等価性を定義する方法をうまく説明しています。地上の値を使用することは文脈上の同等性を定義する正しい方法だと思います。終了は、疑わしいメリットの便利なショートカットにすぎません。βη
ガス

1
@Blaisorblade申し訳ありませんが、ターミネーションを観察可能として使用している場合、そのとおりです。申し訳ありませんが、私は完全な確定的言語をチューリングするための定義をカットアンドペーストしていました。終了関数がある場合は、別の基本オブザーバブルを使用できます。ブール値の例:... iff。すべてのコンテキストにわたる定量化は常に問題です。それを処理する標準的な方法は、(1)健全であり、(2)二相性の概念や論理的な関係など、扱いやすい2 番目の関係を定義することです。アプリケーションによって異なります。C [ Q ] T R U E C[P]trueC[Q]true
Martin Berger、

1
@Blaisorbladeおそらく。並行処理理論では、これを長い間集中的に行ってきました。並行処理では、使用する等価の概念があまり明確にならないためです。これは労働力の分割につながりました:等価性の概念を定義するためにコンテキストの定量化を伴う縮約ベースのセマンティクスを使用し、ラベル付けされた遷移に対してバイシミュレーションまたはトレースを使用して等価性(またはその不在)を証明します。並行性理論における大きな未解決の研究課題は、前者から後者にアルゴリズムでどのように移行するかです。
Martin Berger

回答:


3

意味論的に等しい用語がそれらが観測的に同等であることを意味する場合、プログラミング言語(たとえば、ドメイン理論的またはゲーム理論的)の構成的表示セマンティクスが適切です: 多くの場合、観測の同等性を証明するための表記を計算する方がはるかに簡単です。これは、多くの既知のバリアントで一般的な手法です。妥当性はプロトキンのPCF論文ですでに定義されています。[[[]]

[[t1]]=[[t2]]t1t2.

他の形式を使用するための適切なセマンティクスは特に必要ありません。たとえば、操作方法を使用して、議論中のプログラミング言語内でしっかりと近似することもできます。
Martin Berger

回答に感謝しますが、-1:私は同意しますが、質問は純粋な型システムに言及しています。純粋な型システムの表記セマンティクスであるAFAICSは未解決の問題です。そのため、回答はいくつかの表記セマンティクスを指す必要があると思います。(実際、私が表示セマンティクスを持っている場合は、質問で述べたように、操作セマンティクスを完全に省略します)。(しかし、あまりに長い質問で申し訳ありません。)
Blaisorblade 2015年

@MartinBerger、私はあなたの批判を理解していません。OPは観測の同等性を示す方法を要求します、私は一般的なものに言及します、そしてあなたはその方法を回避する他の方法が存在することに異議を唱えますか?
Andrej Bauer

2
@Blaisorblade、それでは、純粋な型システムの表示セマンティクスを発明する必要がありますね。:-)しかし、もっと真剣に、私はアレックス・シンプソンに尋ねます、彼はそのようなもののための意味論的意味論についてよりよく知っているでしょう。
Andrej Bauer

@AndrejBauer批判を意図したものではなく、補遺として。
Martin Berger

2

η


1
StreicherのPhDはPTSに関するものではないと思います。それは、構造計算のセマンティクスと、信頼性セマンティクスによる独立性の結果についてです。こちらをご覧ください
Martin Berger

説明をありがとう!リンクが壊れていると思います(そしてリンクを縮小して修正するのは難しいです)。
cody

リンクは、この本の目次へのリンクでし。これがうまくいくといいですね。
Martin Berger

λ

@MartinBerger:実現可能性のセマンティクスを意味しますか?
Dominique Devriese

0

この回答は、問題へのアプローチを示唆しています。(フィードバックは大歓迎です)。

PFPL第49章では、観測的等価性と論理的等価性の同等の概念について一度に説明します。論理的等価性はパラメトリック性を述べるために使用されるのと同じ関係なので、この章の中心はシステムFのパラメトリック性の証明です。

PTSのパラメトリック性に関する作業、AFAICTは、観測的同等性との関係については議論していません。実際、観測の同等性を定義する場合でも、非終端がない限り、観測に使用するいくつかの正の地上タイプ(自然、ブール)が必要です。

ただし、2つの関係を関連付ける主要な定理(PFPL 47.6、48.3、49.2)は、特定の言語とは無関係に証明されています。

観測的同等性は、式の最も粗い一貫した合同です。

次に、論理的同等性が観測的同等性を意味することを示すには、論理的同等性が一貫した合同であることを示すだけで十分です。ただし、もう1つの方向にはさらに作業が必要です。特に、論理的等価性が合同であることを示すために、コンテキストの帰納法によって進められます。

n + 1 = 1 + nVecN nnVecNVecNn+1=1+nVec (n + 1)Vec (1 + n)n + 11 + n

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