コンビネータ計算式で計算できる関数は何ですか?


13

コンビネーター式(SKベースで言う)は、コンビネーター計算式をコンビネーター計算式にマッピングする関数と考えることができます。つまり、式は関数として考えることができます。ここで、はSK基底の構文的に有効なすべての組み合わせ式のセットです。このマッピングは、入力を式に適用し、通常の形式に縮小して出力を取得することにより実行されます。X L L LXX:LLL

SK基底はチューリング完全であるため、からまでの計算可能な関数を実装するSK式が存在すると単純に考えるかもしれません。ただし、削減の結果は常に通常の形式になるため、これは明らかに当てはまりません。これは、通常の形式ではない出力を式が持つ方法がないことを意味します。L LXLL

その代わり、SK計算式はをマッピングするものと考えることができます。ここで、は通常の形式のSK式のセットです。計算可能なマップには、このマップを実装するSK式がありますか?または、この方法でコンビネータ計算式によって計算できる関数のセットにさらに制限がありますか?L L f L L XLLLfLLバツ

回答:


6

ボールを転がすために、そして他の人々が定義可能な関数の構造についてより深くより詳細な答えを与えることを期待して、BarendregtsのThe Lambda Calculus、Its構文とセマンティクス(別名「聖書」)。L "L "λLL

当然の結果20.3.3:機能によって定義される、 δ M Nは= { T 、R 、U 、E  もし  M = β η N F L S Eは、 別段 に定義可能でありません型なしλの -calculus、すなわちない用語が存在するDように D M N = β η δ M N のすべてのためのM N LδL2L

δMN={Trあなたはe もし M=βηNFalse さもないと
λD
D M N=βηδMN
MNL

FnNP1Pn

F バツ P1Pn=βηバツ Q1Qk

kQ1QkDδD

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