単純に型付けされたラムダ計算で関数の等価性を決定するアルゴリズム?


10

単純に型指定されたラムダ項のベータ等価性は決定可能であることはわかっています。M、N:σ→τが与えられた場合、すべてのX:σ、について決定可能かβ


単純に型付けされたラムダ計算/ STLCウィキペディア。チューリングが完全ではないので、それに相当する他の基本的な計算モデルはありますか?ウィキペディアによるSTLCの決定が可能な停止検出アルゴリズムを研究することも有用かもしれません...
vzn

3
@Marzio:実際、ここでの問題は質問の作成方法にあると思いますが、これはかなり不正確です。適切に定式化されると、これは研究レベルの質問です。より良い定式化は次のようになります。単純に型指定されたラムダ項のベータ等価性は決定可能であることを知っています。M、N:\ sigma \ rightarrow \ tauが与えられた場合M,N:στ、すべてのX:σMX \ simeq_ \ beta NXについて決定可能MXβNXですか?答えは一般的に否定的です(したがって、Viclibが求めるようなアルゴリズムは存在しません)。おそらく予想されますが、これはアプリオリでは明らかではなく、90年代の2、3の論文の結果です。
ダミアーノ・マッツァ2014年

@DamianoMazza:わかりました、確かにそれを閉じるために投票しませんでした...私はコメントを削除し、あなたのコメントを残して、OPのコメント/編集を待ちます。
Marzio De Biasi 14年

@DamianoMazzaとMarzio、私はそのような正式な質問をするのに十分なことを知りません。とはいえ、そうしたいのですが、これは私の学校で学んだことではありません。実際、質問する前に実際に試した「ベータ版の平等」をググリングしても、結果は非常に少なく、ほとんどこの用語が存在しなかったようなものです。だから、私はあなたがそれらすべてについて学び、読む場所についての考えさえ持っていません。皆さんは私にトピックを自己学習を始めるための適切な場所を教えてくれますか?質問を更新しました。
MaiaVictor 2014年

1
@Viclib:ベータ同等性は技術的な概念であり、私の回答では言及しませんでした。大まかに言って、同じ結果が得られる場合、2つの用語はベータ版と同等です。つまり、すべてのに対してとは、とが同じ関数を計算することを意味します。(型付きまたは型なしの)ラムダ計算について学ぶための指針については、Peter Selingerのノート、Curry-Howardに関する SørensenおよびUrzyczynの講義ノートが優れた出発点だと思います。MバツβNバツバツMN
Damiano Mazza 14年

回答:


13

私のコメントで述べたように、一般的な答えはノーです。

理解すべき重要な点(私はこれらについて学んでいるように見えるViclibについてこれを言います)は、すべてのプログラム/計算が決して終了しないプログラミング言語/マシンのセットを持つことは、その機能の平等(つまり、プログラム/マシンは同じ機能を計算します)は決定可能です。簡単な例:多項式クロックのチューリングマシンのセットを見てみましょう。定義により、このようなマシンはすべて、すべての入力で終了します。ここで、任意のチューリングマシンが与えられた場合、入力に文字列与えられた、シミュレートするチューリングマシンがあります固定入力(たとえば、空の文字列)でのの計算ステップ、および最大で終了する場合に受け入れるM 0 x | x | M M | x | N M 0 N M 0 N MMM0バツ|バツ|MM|バツ|ステップ、またはそれ以外の場合は拒否します。場合チューリングマシンで常にすぐに、拒否していることと(当然)両方の多項式-クロックされ、まだ我々がいるかどうかを決めることができればと同じ機能を計算(または、この場合には、同じ言語を決めます)、(これは任意のチューリングマシンです)が空の文字列で終了するかどうかを判断できます。NM0NM0NM

単純に型付けされた -calculus(STLC)の場合、STLCの表現力を測定することが上記の場合ほど簡単ではないことを除いて、同様の引数が機能します。私がコメントを書いたとき、90年代前半のHillebrand、Kanellakis、Mairsonによるいくつかの論文を覚えていました。これは、通常の教会整数型よりも複雑な型を使用することで、STLCで十分に複雑にエンコードできることを示しています。上記の引数が機能するための計算。実際に、必要な材料はすでに、Statmanの定理のMairsonの簡略化された証明にあることがわかります。λ

Harry G. Mairson、Statmanの定理の簡単な証明。Theoretical Computer Science、103(2):387-394、1992。(ここからオンライン入手できます)。

その論文では、Mairsonは、任意のチューリングマシン与えられると、単純型のと -termが遷移関数をエンコードすることを示しています。(教会の整数に対するSTLCの非常に貧弱な表現力を頭に入れている場合、これはアプリオリでは明らかではありません。実際、Mairsonのエンコーディングは即時ではありません)。このことから、用語を構成することは難しくありませんσ λ δ Mσ σ MMσλδMσσM

tMat[σ]bool

(ここで、は、での教会整数のタイプのインスタンス化です)そのため、最大ステップで終了する場合は減少します。空の文字列を入力するか、それ以外の場合は減らします。上記のように、で表されるが定数関数であると判断できた場合、空の文字列での終了を決定します。σ T Mat[σ]σ1 _ Mn 0 _ t M 0 _ MtM_1_M0_tM0_M


STLC多変量多項式関数の符号化を使用して、Matiyasevichの定理にアピールすることもおそらく可能です。
cody

したがって、STLCは完全なチューリングではありませんが、チューリングマシンの遷移関数をエンコードするのに十分強力です!?では、チューリングマシンは、テープとその上で動作するSTLCプログラムとして定義できますか?
MaiaVictor 2014年

2
@Viclib:考えてみてください。任意のチューリングマシンの1つのステップのシミュレーションには、それほど多くの計算能力は必要ありません。基本的に、必要なのは有限のデータ型(if-then-elseを使用)、リスト(基本的な演算:cons、tailなど)および順序付けされたペアのみです。(実際、拡張教会チューリング論文では、このような低い複雑さはすべての合理的なマシンモデルに共通していると主張しています)。STLCが欠けているのは、入力とは無関係にTM遷移を「自由に」実行できることです。入力サイズの指数関数のタワーに等しい回数だけそれらを反復できます(Mairsonの論文を参照)。
Damiano Mazza 14年

1
@cody:ありがとう、私はその紙を知りませんでした。正しいと思うよ。
Damiano Mazza 14年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.