Bagaimana Lambda Calculus jenis khusus dari sistem Menulis Term?

13

Sekarang kita dapat melihat bahwa Gereja dikaitkan dengan yang Cukup Diketik Lambda Kalkulus . Memang, tampaknya ia menjelaskan Kalkulus Lambda Cukup Ketik untuk mengurangi kesalahpahaman tentang Kalkulus Lambda.

Sekarang ketika John McCarthy menciptakan Lisp - ia mendasarkannya pada Kalkulus Lambda . Ini dengan pengakuannya sendiri ketika ia menerbitkan "Fungsi rekursif dari ekspresi simbolik dan perhitungannya dengan mesin, Bagian I" . Anda bisa membacanya di sini .

Sekarang kita tahu bahwa pada intinya Mathematica adalah sistem mirip Lisp , tetapi alih-alih didasarkan semata-mata pada Kalkulus Lambda, itu didasarkan pada sistem penulisan ulang istilah .

Di sini penulis menyatakan:

Mathematica pada dasarnya adalah sistem penulisan ulang istilah ... sebuah konsep yang lebih umum daripada Kalkulus Lambda di belakang Lisp.

Tampaknya Kalkulus Lambda adalah bagian kecil dari kategori yang jauh lebih umum. (Cukup membuka mata sebagai pemikiran ini lebih merupakan konsep dasar). Saya mencoba membaca lebih lanjut tentang ini untuk mendapatkan perspektif tentang itu.

Pertanyaan saya adalah: Bagaimana Lambda Calculus jenis sistem penulisan term tertentu?

hawkeye
sumber

Jawaban:

15

Jawabannya tergantung apa yang Anda maksud dengan Term Rewrite System .

Ketika diperkenalkan, konsep Term Rewrite Systems , atau TRSes, menggambarkan apa yang sekarang disebut TRSes urutan pertama , yang hanya berupa seperangkat aturan perhitungan bentuk

lr

lr

t:= x  f(t1,,tn)

xfΣfΣ

Var(r)Var(l)

β

(λx.t) ut[u/x]
λxtλ

SKΣ={S, K,app}

app(app(K,x),y)x
app(app(app(S,x),y),z)app(app(x,z),app(y,z))

Ada lagi, pengkodean yang lebih intuitif yang melibatkan istilah lambda dengan indeks de Bruijn dan substitusi eksplisit, tetapi saya tidak akan membahasnya di sini.


λ

t := x(t1,,tn)  f(x11xi11.t1,,x1nxinn.tn)

fΣxjitiabs(x.t)λx.t

βηβ

Oleh karena itu sisi kiri dibatasi dalam beberapa bagian yang bagus, sering kali "pola Miller". Sejumlah hasil untuk kasus tingkat pertama digeneralisasi, meskipun ada beberapa kejutan yang tidak menyenangkan.

λ βη

λβ

app(abs(x.y(x)),z)y(z)

Tinjauan yang cukup baik tentang definisi dan hasil dasar diberikan oleh Nipkow dan Prehofer di sini .

cody
sumber