Fungsi apa yang dapat dihitung oleh kalkulus kalkulus?

13

Ekspresi kombinator (misalkan dalam basis SK) dapat dianggap sebagai fungsi yang memetakan ekspresi kalkulus kombinator ke ekspresi kalkulus kombinator. Artinya, seseorang dapat menganggap ekspresi X sebagai fungsi , di mana adalah himpunan semua ekspresi kombinator yang valid secara sintaksis dalam basis SK. Pemetaan ini dilakukan dengan menerapkan input ke ekspresi, dan kemudian mengurangi ke bentuk normal untuk mendapatkan output.X:LLL

Karena dasar SK tersebut Turing lengkap, satu mungkin naif berpikir bahwa ada sebuah SK ekspresi yang mengimplementasikan fungsi dihitung dari ke . Namun, ini jelas bukan masalahnya, karena hasil reduksi akan selalu dalam bentuk normal. Ini berarti tidak ada cara bagi ekspresi untuk memiliki output yang tidak dalam bentuk normal.XLL

Jadi sebagai gantinya, saya bisa menganggap ekspresi kalkulus SK sebagai pemetaan ke , di mana adalah himpunan ekspresi SK dalam bentuk normal. Apakah itu kasus bahwa, untuk peta yang dapat dihitung , ada ekspresi SK yang mengimplementasikan peta ini? Atau adakah batasan lebih lanjut pada himpunan fungsi yang dapat dihitung dengan ekspresi kalkulus kombinator dengan cara ini?LLLf:LLX

Nathaniel
sumber

Jawaban:

6

Untuk membuat bola bergulir, dan dengan harapan orang lain memberikan jawaban yang lebih dalam dan lebih rinci pada struktur fungsi -definisi L L , izinkan saya mengutip Corollary 20.3.3 dari Barendregts ' The Lambda Calculus, Syntax dan Semantik (alias "Alkitab").λLL

Akibat wajar 20.3.3: Fungsi , yang didefinisikan oleh δ ( M , N ) = { T r u e  jika  M = ß n N F a l s e  dinyatakan tidak didefinisikan dalam untyped λ - kalkulus, yaitu tidak ada istilah D sehingga D M N = β η δ ( M , N )δ:L2L

δ(M.,N)={Trkamue jika M.=βηNFSebuahlse jika tidak
λD
D M. N=βηδ(M.,N)
untuk semua .M.,NL

Buktinya melibatkan pertimbangan pada pohon Böhm yang memberikan karakterisasi yang agak kuat tentang "tindakan" yang mungkin dari istilah lambda sewenang-wenang pada bentuk normal. Secara khusus, untuk setiap non-konstan jangka tertutup , di dapat menemukan n N dan P 1 , ... , P n sehingga F x P 1 ... P n = ß n x Q 1 ... Q kFnNP1,...,Pn

F x P1...Pn=βηx Q1...Qk

kQ1,...,QkDδD

cody
sumber