型理論における非終了と停止証明の良い概念はありますか?


10

カレーハワード対応のもとでの基本的な解釈を伴う構成型理論は、完全な計算可能な関数のみで構成されます。文献では、関数型プログラムで非終了を表すために「計算型理論」を使用することについて述べられている人もいますが、私が遭遇した論文では、これは理論の主な動機ではないようです(たとえばBentonは、非決定性、継続、および例外について言及していますが、非終了については詳しく説明していません。そのため、計算型理論を使用した非終了の堅牢な解釈を示す論文はまだありません。

具体的には、私が探していますと、型の可能性が非終端計算表すタイプ与えられている方法である、、いくつかの概念が存在すべきであることを証明終了型の、とが与えられると、項構築できます。T A X T A H X X T A P H X XAAT(A)x:T(A)H(x)x:T(A)p:H(x)x~:A

これに対する私の動機は、結局、計算複雑性理論の概念を構成型理論により正式に関連付けることができるようになりたいということです。具体的には、停止するオラクルにアクセスすることで、形式的な理論の構成型としてどのような力が得られるかに興味があります。これを行うために、実際には、可能な非終了の正式な概念と、停止の証明が必要です。型理論のフレームワーク内でそれに沿って行きます。


3
型理論におけるConstable-Mendlerの再帰的な定義を見ましたか?彼らは、部分関数のすべての固定小数点再帰的定義に規定の方法与えるからために述語ドメインをようにするための、は、が停止する証明のタイプを表します。これはNuprlで実装されていると思います。fAB dom(f)xAdom(f)(x)fx
Ulrik Buchholtz

3
遅延モナドをお探しですか?
Andrej Bauer

@UlrikBuchholtz私が探しているものにかなり近いと思いますが、この論文で使用されているNuprl表記を解析するのは困難です-これとは似ていません。私が正しく理解すれば、それらは本質的にからへの部分的な再帰関数を定義します(または少なくとも、それらを識別します)を$ \ {x:Aからの完全な再帰関数として定義します。dom(f)(g)\}からBへ(27ページの下部にある備考を参照)AB
Nathan BeDell 2016

回答:


11

形式化における型理論の主な用途の1つはプログラミング言語と計算一般の研究でしたので、終了しない可能性のあるプログラムを表す方法について多くの考えがなされてきました。

ここでは完全な調査は行いませんが、さまざまな方向の主な推力へのポインタを提供するように努めます。

  • 「リレーショナル」アプローチ:関係が言うように架空のプログラムを定義できます。fxf x = yで定義されている場合に限り、を保持します。これは通常、Kleene T述語で行われることです。これは、それが古典論理の場合と同様、型理論の形式化で同じようにうまく動作します(もちろん、あなたが証明できないものののx yはFはxはyと¬ yはFはxはyと)。F x yfxf(x)=yx(y,F x y)(¬y,F x y)

    これを行うためのより洗練された方法は、「Bove-Capretta」メソッドです(型理論の再帰のモデリングを参照)。これは、再帰関数ごとに、特定の計算が有限であるという事実をエンコードする「アクセス可能な述語」を定義します。関数の定義は与えられた入力がアクセス可能であることの証明である追加の引数この追加の述語なしで関数を定義するには、可能なすべての入力の組み合わせがアクセス可能であることを証明する必要があります。

  • A

    codata Delay A =
    | Now : A -> Delay A
    | Later (Delay A)
    

    これは、無限の可能性があるLaterトークンのストリーム(計算の「ティック」)をコード化し、結果で終了する可能性がありNow aます。終了しないことは、プログラムと二相性であることに相当します

    loop =後のループと終了は、帰納的な述語overによって定義できますDelay A

    data Terminates : Data A -> Prop =
    | Term_now : forall x, Terminates (Now x)
    | Term_later : forall d, Terminates d -> Terminates (Later d)
    

    私はagda-istasがこれについて不公平モナドと呼んでいる多くのことを言っていると思います(例えばDanielssonを参照)。

  • 「部分型理論」アプローチ:これはもう少し実験的です(理論はまだ解決されていません)が、本質的に2つの型の関数が存在するという事実に対処するために開発されているいくつかの型理論があります型理論で書く:証明用語とプログラム。これらの事柄について妥当な理論を得る(そして理論の一貫性を維持する)ことは困難であることが判明しましたCasinghino らによって真剣な試みが行われ、Kimmel らによって同様の努力が行われました。

私が知らない他のアプローチがあると確信しています。誰かがこのリストを完成させたいと思っています。

Π10

型理論と複雑性理論の間には、通常、暗黙の計算の複雑さの傘下にある、他にも非常に有益な相互作用があります。


興味深い、情報ありがとうございます!私は部分型理論のアプローチがおそらく私が探しているものに精神的に最も近いと信じています-そして少なくとも、キンメル紙は私が探しているものを特定のレベルで具体的に提供しているようです(「tcast」の型付けルールを参照) )。
Nathan BeDell 2016
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.