smnの定理はカレーと同じ概念ですか?


12

私はsmnの定理を勉強していて、その概念はカレーを思い出させました。

smn定理に関するウィキペディアの記事から:

定理は、与えられたプログラミング言語と正の整数mとnに対して、m + n個の自由変数とm個の値を持つプログラムのソースコードを入力として受け入れる特定のアルゴリズムが存在することを示しています。このアルゴリズムは、最初のm個の自由変数の値を効果的に置き換えるソースコードを生成し、残りの変数を自由にします。

カレーに関する記事から:

直感的に、カレーは「いくつかの引数を修正すると、残りの引数の関数を取得する」と言います

私には同じ考えのようです。私が確信できない唯一の理由は、smnで出くわした材料がカレーについて言及していない(そしてその逆も同じ)ためです。そのため、実際に入手することを確認するために相談したいと思いました。


確かに。一部の計算可能性の証明には、ラムダ風の風味があります。非常に大まかに言えば、smnの定理は、再帰関数のインデックスがラムダ項であるように見せかけることができるため、が与えられれば、非公式のそしてがプリミティブな再帰的であると主張します。2番目の再帰定理の証明(smnを悪用する)でさえ、使用の背後に隠された、変装したチャーチの固定小数点結合子です。ここで重要な点は、列挙型が、たとえばTM(またはJavaなど)を列挙して定義されている場合でも、ラムダがあると偽ることができるということです。ϕi(,)g(x)=#λy.ϕi(x,y)gs()ϕi
2017

さて、カリー化された関数の存在が「コンパイラー」を提供する一方で、smnは存在ステートメントを作成します。しかし、考え方は同じです。
ラファエル

回答:


15

はい、同じです。

カレーは -calculusのコンセプトです。と間変換です。これを「タイプとの2つの引数の関数がある場合、最初の引数(タイプ)を修正して、残りの引数(タイプ)の関数を取得する」と考えてください。実際、この変換は同型です。これは、デカルトの閉じたカテゴリである(型付けされた) -calculusの数学モデルによって数学的に正確になりますλA×BCA(BC)ABABλ

番号付きセットのカテゴリがあります。番号付きセットはペアここで、はセットであり、は部分射影、つまり、数値からへのマップであり、これも定義されていない場合があります。もし、我々はそれを言うあるコードの。計算可能性理論には多くの例があります。いくつかの情報を番号でエンコードするときはいつでも、番号付きのセットを取得します。たとえば、部分的な計算可能な関数の標準的な番号付けがあるため、は、(A,νA)AνA:NAAνA(n)=xnxφφn(k)nに適用した場合は。(結果は未定義になる場合があります。)k

番号付きセットの射は実現マップ 。これは、が存在し、すべてのためのドメインで。これは複雑に見えますが、がが要素行うことをコード化することが述べられています。これは、「プログラムが関数実装する」という数学的な言い方です。f:(A,νA)(B,νB)nNf(νA(k))=νB(φn(k))kνAφnfϕnf

パンチラインは次のとおりです。番号付きセットのカテゴリはデカルト閉じています。したがって、型指定された -calulusを解釈し、カリー化操作を実装するプログラムを尋ねます。答えは、smnの定理によって与えられるプログラムです。λ


面白い。そのカテゴリはと密接に関連していますか?はPERをいるようです。PER(A)νA
2017

1
はい、2つのカテゴリは同等で、3番目の同等のバージョンは、控えめなセット(ルックアップ「控えめなセットとアセンブリ」)のものです。
Andrej Bauer
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.