Piタイプのfunsplitと極性


18

Agdaメーリングリストの最近のスレッドで、法則の問題が浮かび上がり、そこでPeter Hancockが示唆に富む発言をしましたη

私の理解では、法則には負のタイプがあります。導入規則が可逆的である接続詞。関数のを無効にするために、ハンクは、通常のアプリケーションルールの代わりに、カスタムメイドのエリミネーターfunsplitを使用することをお勧めします。極性の観点からハンクの発言を理解したいと思います。ηη

たとえば、 -typesという2つのプレゼンテーションがあります。ポジティブなスタイルの伝統的なMartin-Löf スプリットエリミネーターがあります。Σ

Γf:(a:A)(b:Ba)C(a,b)Γp:Σa:A.BΓsplitfp:Cp

そして、ネガティブバージョンがあります:

Γp:Σa:A.BΓπ0p:AΓp:Σa:A.BΓπ1p:B[π0p/a]

この後者のプレゼンテーションにより、ペアのを簡単に取得できます。(は任意のペア(==は定義の等式を表します)。証明可能性の観点では、この違いは重要ではありません。直感的に、分割を使用して投影を実装することも、その逆も可能です。η(π0p,π1p)==pp

現在、Π -typesは通常否定的です(そして議論の余地なく、私は信じています)。

Γf:Πa:A.BΓs:AΓfs:B[s/a]

これにより、関数の\ eta xが得られます。fx == fηλx.fx==f

ただし、そのメールでは、ハンクはfunsplitエリミネーターを思い出します(ML型理論でのプログラミング、[http://www.cse.chalmers.se/research/group/logic/book/]、p.56)。論理フレームワークでは、次のように記述されています。

fΠ(A,B)C(v)Set[vΠ(A,B)]d(y)C(λ(y))[y(x)B(x)[xA]]funsplit(f,d)C(f)

興味深いことに、ノードストローム等。「[この]代替の非正準形は構造誘導の原理に基づいている」と言って、この定義を動機付けます。このステートメントには強い肯定的な匂いがあります。関数は、コンストラクター\ lambdaによって「定義」されλます。

ただし、自然の演in(または、さらに良いことに、逐次計算)でその規則を十分に表現することはできません。ここで、を導入するための論理フレームワークの(悪用)が重要であると思われます。y

それで、funsplitは -typesのポジティブなプレゼンテーションですか?(非依存)シーケント計算でも同様のことがありますか?それはどのように見えるでしょうか?Π

その分野の証明理論家にとって、それはどれほど一般的/好奇心が強いですか?

回答:


12

を使用した機能的除去の提示は、型理論のほとんどの処理で通常発生することではありません。しかし、私はこの形式が実際に機能型の排除の「ポジティブな」表現であると信じています。ここでの問題は、高次パターンマッチングのフォームが必要なことです。たとえば、Dale Millerを参照してください。fあなたはnsplt

より明確な方法でルールを再定式化できるようにしてください。

Γf:Πx:A.BΓ,z:Πx:A.BC:SetΓ,[x:A]F(x):Be:C{λx:A.F(x)/z}match f with λx:A.F(x)e:C{f/z}

ここで、はコンテキストx AのタイプBのメタ変数です。FBx:A

書き換えルールは次のようになります。

match λx:A.t with λx:A.F(x)ee{t{u/x}/F(u)}

これにより、アプリケーションを次のように定義できます。

app(t,u)=match t with λx:A.F(x)F(u)

これが有効であるためには「論理フレームワークスタイル」型システムが必要であるという事実を超えて、高次の統一の手間(および限られた必要性)がこの定式化を不人気にします。

ただし、文献には正/負の区別が存在する場所があります。論理関係述語の定式化です。2つの可能な定義(単項の場合)は次のとおりです。

[[Πx:A.B]]={tu[[A]],tu[[B]]xu}

そして

[[Πx:A.B]]={ttλx.t,u[[A]],t{u/x}[[B]]xu}

2番目のバージョンはあまり一般的ではありませんが、たとえばDowekやWerner見つけることができます。


1
これは、論理フレームワークで広く使用されている高次抽象構文に関連しているようです。特に、ここのはメタ関数のようです。F

13

Fredrikの答えに対する見方は少し異なります。一般的に、タイプの即時型教会エンコーディングは、関連する法則を満たしますが、η法則を満たしません。βη

したがって、これは次のように依存ペアを定義できることを意味します。

次に、そのノート π 1は容易に定義可能である: π 1X X

バツバツY[バツ]αΠバツバツY[バツ]αα
π1 ただし、第二投影定義できない π 2ΠのP X Xが
π1バツバツY[バツ]バツλpバツバツY[バツ]pバツλバツyバツ
-やってみてください!弱いエリミネーターのみを定義できます。そのため、私は実存的にそれを作成しました。π2ΠpバツバツY[バツ]Y[π1p]

ただし、2番目の投影は実現可能であり、パラメトリックモデルでは、適切な動作があることを示すことができます。(参照構文の微積分でparametricityにデレク・ドレイヤーと私の最近の草案をこの上の多くのため。)私はと思いますので投影は基本的に、それは意味をなさないするためのいくつかの強力なextensionalityプロパティを要求。π2

シーケント計算の観点から見ると、弱エリミネーターには次のようなルールがあります。

ここで、暗黙の整形式条件は、pΓまたはCで自由に発生できないことを意味します。その条件を緩和すると、ΓxXyY[x]のような左規則を持つ分割規則が得られ ます

Γ,x:X,y:Y[x],Γe:CΓ,p:x:X.Y[x],Γlet(x,y)=pine:C
pΓC この置換は、平等のためのジラード/シュレーダー-ハイスターの非常に多くの排除ルールを思い出させます。私は、質問尋ねバックしながら、このルールAについての、そしてデビッドBaeldeとゴパランNadathurは、彼らのLICS 2012紙での最先端のバージョンを与える固定小数点の定義の控除モデューロとロジックを組み合わせます。コナーマクブライドは、アイデンティティタイプとシュレーダーヘイスター平等との関係についてしばらく考えてきたと思うので、彼の考えを見てみたいと思うかもしれません。
Γ,x:X,y:Y[x],[(x,y)/p]Γe:[(x,y)/p]CΓ,p:x:X.Y[x],Γlet(x,y)=pine:C

1
これらすべての答えを本当に楽しんでいます!私は、「内省」(用語が値を持っていることを知る能力)という概念が、イータの本当の問題であるフレドリクからの答えに暗示されていると感じています。
コディ

10

リチャード・ガーナーは、アプリケーションvsファンスプリットに関する素晴らしい記事を書いています。Martin-Löfの型理論における従属製品の強さについて(APAL 160(2009))、ファンスプリットルールの高次の性質についても説明しています( Peter Schroeder-Heister's A Natural Extension of Natural Deduction (JSL 49(1984)))。

Π

mΠABηmdΠABmλバツmバツΠ-プロップ-η
バツAfバツBバツηλf=reflλfdΠABλfλfΠ-プロップ-η-Comp)

ηΠ-プロップ-η-コンプ

Σsplit

η(m):=refl(m)ηηηΣ

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