ラムダ計算は、計算可能性の直感的な概念をどの程度正確にキャプチャしますか?


12

私は何を、なぜ、どのように -calculusに巻き込もうとしていましたが、「なぜそれが機能するのか」を理解することができませんか?λ

「直感的に」Turing Machines(TM)の計算可能モデルを取得します。しかし、この -abstractionは、私を混乱させます。λ

TMが存在しないと仮定しましょう-そして、計算可能性のこの概念をキャプチャする -calculusの能力について、どのようにして「直感的に」納得させることができますか。すべての機能とその構成可能性のために多数の機能を持つことは、どのように計算可能性を意味しますか?ここで何が欠けていますか?私はそのことについてアロンゾ教会の論文を読んでいますが、私はまだ混乱しており、同じものについてより「くすんだ」理解を探しています。λ


書き換えシステムと文法にも同じ問題がありますか?ラムダ計算では、基本的な操作は非常に簡単です。関数の抽象化、置換による関数の適用、計算はベータ正規化です。言い換えれば、それに関するあなたの問題が合理的な計算モデルであることはわかりません。
カベ

2
ラムダ計算の定義可能な関数が計算可能であることを疑う人は誰もいません。歴史的には、これらが直感的に計算可能な唯一の機能であるかどうかが問題でした。
カベ

1
私が役立ったと思うのは、レイモンド・M・スマリアンの本「魔法の森で機能を鳥に置き換える」(読みやすい)
でした-dspyz

1
Smullyansブックは結合論理についてです
Trismegistos

回答:


21

あなたは良い仲間です。KurtGödelは -calculus(および彼自身の一般的な再帰関数の理論)を、直観的ではない、または何が起こっているのかを十分に説明できないという理由で、計算可能性の満足できる概念ではないと批判しました。対照的に、彼はチューリングの計算可能性の分析とそれに続く機械の概念が完全に説得力があることを発見しました。だから、心配しないでください。λ

一方、計算可能性のモデルがどのように機能するかについてのアイデアを得るには、その中にいくつかのプログラムを書くのが最善です。しかし、純粋な -calculusでそれを行う必要はありませんが、それは楽しいものです(ファイヤーウォークと同じような方法で)。Haskellなどのλ -calculusの最新の子孫を使用できます。λλ


4
火渡りがあなたが言うほど楽しいなら、私それを試さなければなりません
ラドゥグリゴール

Andrej、これらの参照を知っていますか?ゴーデルは、すべての可換関数をキャプチャするものとしてChruchのモデルを受け入れませんでしたが、それ以上にモデルを批判したことをどこでも見たことはありません。教会のラムダ計算モデルに対する彼の批判は、私が知る限り、彼自身のゲーデル・ハーブランドの一般的な再帰関数に対する批判と同等でした。
カベ

3
K.ゴーデル:「決定不能な結果に関するいくつかの発言」、ソロモンフェファーマン、ジョンドーソン&スティーブンクレーネ(編)、カートゲーデル:収集作品集Vol。いい オックスフォード大学出版局。305--306(1972)。books.google.si/…を
Andrej Bauer

6

あなたはそれでプログラムします!教会のエンコーディングを見てください。すべての算術演算がどれだけ実行できるかを見ることができ、おそらく非常に強力であることを確信させるはずです。ただし、リストの操作を見るのが好きです。最も重要な操作を行う関数に関して、ほとんどのデータ構造を定義できます。

たとえば、リストのエンコードは、リストを折り返す折り畳み関数です。これは教会のエンコーディングではなく、パーシーのタイプとプログラミング言語から得たものです。教会のペアエンコーディングは再帰を提供しません。何らかの再帰コンビネータを使用して、自分でそれを追加し直す必要があります。

そのため、リストは2つの引数を取ります。折りたたみを行う関数と、ある時点で折りたたみにプラグインする初期値です。

cons x xs = lam f. lam a. f x (xs f a)
nil       = lam f. lam a. a

これで、add関数を指定して合計を定義できます(上記の教会エンコーディングを参照)

sum xs = xs add 0

さらに機能を追加して、マップ関数を定義できます

consApply f x xs = cons (f x) xs
map f xs = xs (consApply f) nil

ここで進行中の計算があると確信していない場合、計算を実行できることを確認したい場合は、固定小数点コンビネーターをチェックアウトます。しかし、時々考えるのは頭が少し痛いので、直感的に呼び出すかどうかはわかりませんが、いくつかの引数で手動で評価すると、何が起こっているのかを見ることができます。

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