ソフトリニアロジックのためのより強力な多重化ルール?

(直観主義的な)線形論理では、記憶モダリティ$!$の通常の規則は、昇進、脱毛、収縮、弱体化です。

$ frac { Gamma vdash A} {prom} qquad frac {ガンマ、A
vdash C} {ガンマ、! vdash C}(der) qquad frac { Gamma vdash C}
{ガンマ、!ガンマ、! vdash C}(ctr) qquad frac {ガンマ、 }(wk)$$

Lafontの
rel=”nofollow
noreferrer”>ソフトリニアロジック
は、これらのルールがソフトプロモーションと同等であることを確認することで得られます、多重化、および掘削:

$ frac {ガンマ vdash A} {!ガンマ vdash!A}(sp) qquad frac
{ガンマ、 overbrace {A、ドット、A} ^ n vdash C} {ガンマ、! vdash C}(mpx)
qquad frac {ガンマ、!! A vdash C} {ガンマ、!A vdash C}(dig)$$

掘削ルールを削除します。ソフトリニアロジック(SLL)は、様々な精確な感覚における多項式時間計算に密接に対応するので興味深い。例えば、Lafontは、polytime関数は特定の意味で2次のSLLで表現できるものであることを示したが、
McKinley
は、SLLに基づいた素朴な集合理論で表現できるものでもあることを示し、 SLLに基づくラムダ計算は、ポリタイム計算(追加の機能を追加したときに他の複雑度クラスを加えたもの)を特徴付けることもできます。

私の質問は、SLLで多重化ルール(実際には、各外部自然数$ n
$に対する1つのルールで構成されるルールスキーマ)を次の「強力な多重化」ルールまたは「弱い収縮」ルールに置き換えた場合です。

$$ frac {ガンマ、!A、A vdash C} {ガンマ、!A vdash C}
qquad(*)$$

(また、通常の多重化の特殊なケースであるが、$(*)$の特別なケースである弱体化)

Ordinary contraction says that we can use $!A$ as two $!A$’s —
hence any number of $!A$’s, and hence any number of $A$’s — while
ordinary multiplexing says that we can use $!A$ as any number of
$A$’s as long as we do it all at once. So, for instance, if we have
$!A$ and two branches of a derivation both need some $A$’s, then
ordinary contraction says we can give them both a whole $!A$, while
ordinary multiplexing says we need to decide right away before
doing the branch how many $A$’s each branch needs.

ルール$(*)$は間にあるようです:$ A $から任意の数の$ A $を抽出して$!A $を周りに保つことができますが、 $!A
$。ですから、$!A $を持ち、派生物の2つの枝の両方にいくつかの$ A $が必要な場合、それらの 1つには$!A
$を与えることができます。他の支店が必要とする$ A $の数はいくつですか?

「何が起こるか」という質問は、少し曖昧ですが、さまざまな方法で正確にすることができます。規則$(*)は通常の多重化よりも保守的ですか?規則$(*)$よりも収縮は保守的ですか?
SLL +
$(*)$は、通常のSLLの一部またはすべての方法で、依然としてポリタイム計算に対応していますか?それとも、より複雑なクラスに対応していますか?私はこれらの質問のいずれかへの回答に興味があります。

なぜなら、通常の多重化は、外部自然数によってインデックスされたルールスキーマであるのに対し、$(*)$は単一のルールであるということは、いくつかの目的にとって不都合かもしれません。

ベストアンサー

あなたの規則$( ast)$は時々 “吸収”と呼ばれます。私はそれを考慮した最初の人は、彼の論文に焦点を当てている証拠書類でJean-Marc Andreoliだったと思います。
em>
確かに、プルーフ検索では意味をなさばります。ボトムアップで読むと、$ A $(右の場合)をコピーして$ A
$のコピーを抽出して試してみると、将来の使用のために$?A $を維持します。

もちろん、あなたが知っているように、吸収+弱化と促進(普通のもの、すなわち$!( – )$ + comonad
comultiplicationのfunctoriality)は、完全な線形論理と同等のシステムを与えます。あなたは、システムが、ラフントが「ソフトプロモーション」と呼んでいるものです。私はそれを瞬時に明らかにする理由から$
mathbf {PL} ^ – $と呼ぶことにしましょう。

あなたが正しく観察すると、$ mathbf {PL} ^ – $は$ mathbf {SLL}
$よりはるかに強力です。確かに、これは本質的にあなたの答えの計算的な再定式化です。$ mathbf {PL} ^ –
$の根底にある型付けされていない項の計算は、チューリング完結ですが、$ mathbf {SLL} $ mathbf {SLL}
$:その項は$ O(s ^ d)$ stepsで強く正規化されます。ここで$ s $は正規化される項の指数深度のサイズと$ d
$です(これはタイプ/論理式は、通常の形が所定の形状であることを保証するためにのみ存在します:整数、文字列、ブール値、等。)。

今私は自分自身の仕事を呼び出すために謝罪する必要がありますが、本当にあなたの質問に関係します:$ mathbf
{PL} ^ – $は実際には線形論理と私が呼び出すシステムの間の交渉論理です/ $ mathbf {PL}
$)は、指数モダリティが同型性に従うという事実に基づく線形論理の変形である

$$!A cong (A&1),otimes,!A$$

それ以上のものはありません(もちろん、funferenceialityを除く)。斉藤瑞輝氏は、このisoを、構造上の等価性との類似点のため、Milnerの法則と呼んでいます。$
P equiv P mathrel {|} 、P $ in $ pi $
-calculus(特に、アプリケーションで最も頻繁に使用される affine
バージョンの間違ったロジックを考慮する場合)。ミルナーの法則は$ mathbf {LL} $で保持されないので、$
mathbf {PL} $は線形論理のサブシステムではありません。一方、線形論理の$!( – )$はコモンドであり、$
mathbf {PL} $の場合には収縮しないので、この後者は$ mathbf
{LL}のスーパーシステムではありません$。明示的に、$ mathbf {PL}
$のモデルは、製品を持つSMCC(実際には、自由に結合したオブジェクトで十分です)と、Milnerの法則(当然$ A
$)を満たす単調なendofunctor $!これと比較すると、$ mathbf {LL}
$のモデルは説明するのがはるかに複雑です。

As you see, the implication from left to right of Milner’s law
gives you precisely weakening and absorption (composing with the
projections of $&$, which is the product as usual). So the
system you are asking about is $mathbf{PL}$ with only “half” of
Milner’s law, and in fact
$mathbf{PL}^-=mathbf{PL}capmathbf{LL}$.

$ mathbf {SLL} $と違って、$ mathbf {PL}
$はかなり面白い複雑さの性質を持っていることが分かります。しかし、$ mathbf {SLL}
$やGirardの軽い線形論理とは違って、複雑さは論理規則の構造(Turing-complete)によって制御されるのではなく、単純型線形多型を伴う$
mathbf {PL} $を取り込みます(つまり、$ X $ in $ XA $は$でのみインスタンス化することができます) !$
– 自由な公式)は$ mathsf P $(決定的なpolytime)をキャプチャします。私はまた、 “完全な多型を持つ”
parsimoniousなシステムF “($ mathbf {PL} $)が原始的な再帰を捕捉すると推測します。私が上記の
“キャプチャ”と言うとき、私は、バイナリ文字列$ mathsf {Str} $とブール代数$ {mathsf {Bool}
$を多かれ少なかろうと定義しています。タイプ$ mathsf {Str} multimap mathsf {Bool}
$(または多型が存在しない/制限されている場合のそれらのインスタンス化)。

$ mathbf {PL} ^ –
$から失われているMilnerの法則の面は、logspaceとpolytimeに関する完全性のために必要です(例えば、単純な型の前任者を$
mathsf {Nat} multimap mathsf {Nat} $)。ですから、単純型(線形多形)$
mathbf {PL} ^ –
$は、私が知っているどのクラスにも対応していません:あなたはlogspace(ポリタイムの問題)を解決することしかできません。それらのいくつかを失っている。しかし、完全な2次(またはタイプなしのとき)には、$
mathbf {PL} ^ – $は$ mathbf {PL} $と同じように表示されます。特に、 “parsimonious
OCaml”(これは実装されていませんが、私はそれを実装していません:-))を使って、$ mathbf {PL} ^ –
$で規定されたタイプ規律に従ったOCamlの亜種を扱うことができます。そのような言語に関する面白いことは、一般的な固定点はなく、線形の固定点だけです:あなたが書くとき

$$ mathtt {letrec} mathtt f mathtt x = mathtt {code}
$$

$ mathtt {code} $は、$ mathtt f $($ mathtt {if ldotsならば
ldots else} $ステートメントのすべてのブランチに 1件個のオカレンスしか含めることができません)。
Whileループはまさに線形(尾)再帰であるため、Ocamlは徹底的にチューリングされています。しかし、自然なOCamlプログラムがたくさんあります。これは、OCamlで簡単に書き直す必要があります。
(例えば、バイナリツリー上のすべての構造的再帰)正確で簡潔なロジック(したがって、あなたが求めているロジック)を作ることを望んでいる(しかし、わからない)という意味では、
“whileループの論理”です。私はこれが複雑さの観点からうまく動作する究極の理由だと思います。

もっと好奇心が強い場合に備えて、私はここでやめて指針を与えます。私のウェブページには、控えめな論理と複雑さに関する一連の論文(私自身と共著者による)があります。しかし、物事はちょっと散らばっていて、わかりやすい記述は私の
habilitation 論文を参照してください。

返信を残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です