W jaki sposób Lambda Calculus jest specyficznym rodzajem systemu pisania terminów?

13

Teraz widzimy, że Kościół był związany z tym po prostu wpisane rachunek lambda . Rzeczywiście wydaje się, że wyjaśnił on prosty typ rachunku Lambda, aby zmniejszyć nieporozumienia dotyczące rachunku Lambda.

Teraz, gdy John McCarthy stworzył Lisp - oparł go na rachunku Lambda Calculus . Jest tak, jak sam przyznał, kiedy opublikował „Rekurencyjne funkcje wyrażeń symbolicznych i ich obliczanie przez maszynę, część I” . Możesz to przeczytać tutaj .

Teraz wiemy, że rdzeniem Mathematiki jest system podobny do Lispa , ale zamiast opierać się wyłącznie na rachunku Lambda, opiera się na systemie przepisywania terminów .

Tutaj autor stwierdza:

Mathematica to zasadniczo system przepisywania terminów ... bardziej ogólna koncepcja niż Rachunek Lambda za Lisp.

Wygląda na to, że Rachunek Lambda jest niewielką częścią znacznie bardziej ogólnej kategorii. (Dość otwierające oczy jako myśl była to bardziej podstawowa koncepcja). Próbuję przeczytać o tym więcej, aby uzyskać na to trochę perspektyw.

Moje pytanie brzmi: w jaki sposób Lambda Calculus jest specyficznym rodzajem systemu pisania terminów?

Sokole Oko
źródło

Odpowiedzi:

15

Odpowiedź brzmi: to zależy od tego, co rozumiesz pod pojęciem Term Rewrite System .

Kiedy została wprowadzona, koncepcja Term Rewrite Systems , czyli TRSes, opisywała to, co nazywa się teraz TRSes pierwszego rzędu , który jest po prostu zbiorem reguł obliczeniowych formy

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))

Jest jeszcze jedno, bardziej intuicyjne kodowanie, które obejmuje warunki lambda z indeksami de Bruijna i wyraźnymi podstawieniami, ale nie będę się tutaj zajmował.


λ

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

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

βηβ

Dlatego lewe boki są ograniczone do jakiegoś ładnego podzbioru, często „wzorów Millera”. Uogólnia się szereg wyników dla sprawy pierwszego rzędu, choć jest kilka paskudnych niespodzianek.

λ βη

λβ

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

Całkiem przyzwoity przegląd definicji i podstawowych wyników podają tutaj Nipkow i Prehofer .

cody
źródło