Яким чином обчислення лямбда є специфічним типом системи термінописування?


13

Тепер ми бачимо , що церква була пов'язана з в Просто типізованих лямбда - обчисленню . Дійсно, здається, він пояснив просто набраний лямбда-обчислення, щоб зменшити непорозуміння щодо обчислення лямбди.

Тепер, коли Джон Маккарті створив Лісп - він базував його на обчисленні Лямбди . Це за власним визнанням, коли він опублікував "Рекурсивні функції символічних виразів та їх обчислення машиною, частина I" . Ви можете прочитати його тут .

Тепер ми знаємо, що в основі Mathematica лежить система , схожа на Лісп , але замість того, щоб базуватися виключно на обчисленні Лямбда, вона базується на терміновій системі переписування .

Тут автор заявляє, що:

Mathematica - це принципово система переписування термінів ... більш загальна концепція, ніж обчислення Ламбди за Ліспом.

Здається, що обчислення лямбда є невеликою частиною набагато більш загальної категорії. (Досить відкриття очей, як думка, це було більше фундаментальною концепцією). Я намагаюся прочитати більше про це, щоб отримати певну перспективу.

Моє запитання: Яким чином обчислення лямбда є специфічним типом системи термінового запису?

Відповіді:


15

Відповідь - це залежить від того, що ви маєте на увазі під системою Term Rewrite System .

Коли він був представлений, концепція термінових систем перезапису , або TRSes, описала те, що зараз називається TRSes першого порядку , що є просто набором правил обчислення форми

l→r

lr

t:= x ∣ f(t1,…,tn)

xfΣf∈Σ

Var(r)⊆Var(l)

β

(λx.t) u→t[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))

Існує ще одне, більш інтуїтивне кодування, яке включає в себе лямбда-терміни з індексами де Бруйна та явними підмінами, але я тут не буду вникати в нього.


λ

t := x(t1,…,tn) ∣ f(x11…xi11.t1,…,x1n…xinn.tn)

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

βηβ

Тому ліві сторони можуть бути в деяких приємних підмножинах, часто "шаблонах Міллера". Ряд результатів для справи першого порядку узагальнюють, хоча є кілька неприємних сюрпризів.

λ βη

λβ

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

Досить гідний огляд визначень та основних результатів дають тут Ніпков та Прегофер .


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.