質問

最初の質問:Lambdaの計算からの空き(バインドされていない)変数を削除し、束縛変数のみを取り除くことによって、その電力は減少しないことを証明します(それでまだチューリング完了)?

2番目の質問:上記の命題は本当に本当ですか?Lambda calculusは、本当に完全な完全な変数を維持していますか?

役に立ちましたか?

解決

あなたが無題のラムダ計算を参照していると仮定しています。

SOの場合、 $ n $

閉形項(すなわち、空き変数がない) $ tm $ が存在することが知られている。 $$ TM \ \ Num {i} \ \ num {n} \= _ {\ beta \ eta} \ \ num {m} $$ $ i $ $ i $ -th turing machineの場合のみ(一部の標準列挙で)入力 $ n \ \ mathbb n $ (通常どおりにエンコードされています)halts $ m $ を出力としてhally。

実際、 $ tm $ の書き込みは、Lambda計算における標準的な "プログラミング"運動です。そのために、シンボルのペアまたはペアまたはペアペアのペアまたはペアのペアとしてテープを表現することができます。その後、「ステッピング」サブルーチンをテープとTM状態を前進させることができます。最後に、ステッピングサブルーチンが停止状態に達するまで呼び出されます。この最後のステップは、 $ y $ などの固定小数点コンビネットを使用して実現できます。

チューリング機をシミュレートすることができますので、完全性を鳴らします。


代替証明、(私の意見では)実際に詳細な説明を簡単にしています:一般的な再帰関数は $ \ Lambda $ にすることができることを証明します。閉のラムダの用語。そのためには、一般的な再帰関数の定義を誘導する。

確かに、あなたが閉鎖された用語を目指していなくても、このプログラミング運動では、自然な方法で閉じたものを入手します。結局のところ、プログラミングが予め宣言されていなかった変数を決して必要としません。

一般的な再帰関数は、チューリングマシンによって計算できるものであるので、閉のλ計算の完全性をチューニングする。

ライセンス: CC-BY-SA帰属
所属していません cs.stackexchange
scroll top