Lambda Calculus belirli bir Terim Yazma sistemi nasıl?


13

Şimdi görebilirsiniz Kilisesi ile ilişkili bulunmuştur Basitçe Yazılan Lambda Calculus . Gerçekten de, Lambda Hesabı hakkındaki yanlış anlaşılmayı azaltmak için Basitçe Yazılan Lambda Analizini açıklamış gibi görünüyor.

Şimdi John McCarthy Lisp'i yarattığında - Lambda Calculus'a dayandırdı . "Sembolik ifadelerin özyinelemeli işlevleri ve bunların makine ile hesaplanması, Bölüm I" i yayınladığında, bu kendi kabulüdür . Sen edebilirsiniz buradan okuyun .

Artık Mathematica'nın merkezinde Lisp benzeri bir sistem olduğunu biliyoruz , ancak tamamen Lambda Analizine dayanmak yerine, bir terim yeniden yazma sistemine dayandırılıyor .

Burada yazar şöyle diyor:

Mathematica temelde bir yeniden yazma sistemidir ... Lisp'in arkasındaki Lambda Analizinden daha genel bir kavram.

Lambda Kalkülüsünün çok daha genel bir kategorinin küçük bir parçası olduğu anlaşılıyor. (Bir düşünce olarak oldukça göz açıcı olması, bu daha temel bir kavramdı). Üzerine biraz bakış açısı kazanmak için bunun hakkında daha fazla okumaya çalışıyorum.

Sorum şu: Lambda Calculus nasıl belirli bir Dönem Yazım sistemi?

Yanıtlar:


15

Cevap, Term Rewrite System ile ne demek istediğinize bağlı .

Tanıtıldığında, Term Rewrite Systems veya TRSes kavramı , şimdi formun hesaplama kurallarından oluşan bir dizi olan birinci dereceden TRS'ler olarak adlandırılan şeyi açıkladı.

lr

burada ve olan birinci derece terimleri formununlr

t:= x  f(t1,,tn)

burada bir değişkendir ve , keyfi olarak adlandırılan ancak imza olarak adlandırılan sabit set alınan bir işlev sembolüdür ve her bir için bir dizi argümanı da düzeltir .xfΣfΣ

Kurallara uygulanan birkaç yaygın kısıtlama vardır, örneğin ancak bunlara buradan gerekmiyor.Var(r)Var(l)

Bu tanım, her zamanki lambda hesabı ile birlikte : Kural , yapıcı "olarak ifade edilemez " bağlanan oluşumu in (uygulama olsa iyi). Olası bir çözüm ve yeniden yazma sistemlerinin kendisinden daha eski olan bir çözüm, her bir terimini bağlayıcılığı içermeyen başka bir terime dönüştürmektir.β

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

Bunun bir yolu, imzalı bir yeniden yazma kuralı ve imzalı bir ünlü birleştirici hesabıdır. ve SKΣ={S, K,app}

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

De Bruijn endeksleri ve açık ikameler ile lambda terimlerini içeren başka, daha sezgisel bir kodlama var, ancak buraya girmeyeceğim.


Birinci dereceden kodlamalara rağmen, hesabının indirgeme davranışıyla ilgili teknik sorunların , TRS kavramının bağlayıcıları olan yapıcıları içerecek şekilde genişletilmesiyle daha iyi ele alındığı anlaşıldı . Buna genellikle Yüksek Dereceli Yeniden Yazım Sistemleri terimi denir . Şartlar artık formdan alınmıştırλ

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

Yine nerede , ama şimdi her edilir bağlı olarak . İmzaların her bir bağımsız değişken tarafından kaç değişkenin bağlı olduğunu belirtmesi gerekir. Şimdi temsil eden terim için yazabiliriz . Küçük bir çalışma ile uygun ikame kavramlarını tanımlayabilirsiniz.fΣxjitiabs(x.t)λx.t

Burada, yeniden yazma kuralını neyin oluşturduğu konusunda daha az fikir birliği vardır . Bir sorun, yeniden yazmanın karar verilebilir olmasını istiyoruz ve bu nedenle sol tarafın bir terimle eşleşip eşleşmeyeceğine karar verilmesi gerekiyor. Ancak bu genellikle karar verilebilir olduğuna inanılan modulo kabul edilir, ancak sadece son derece karmaşık ve yavaş algoritmalarla (ve sadece kararsızdır!).βηβ

Bu nedenle sol taraflar, genellikle "Miller kalıpları" olmak üzere bazı hoş alt kümelerde olmakla sınırlıdır. Birinci dereceden dava için bir takım sonuçlar genelleştirilir, ancak birkaç kötü sürpriz vardır.

Sadece birinci dereceden sistemleri almak ve ad hoc ve indirimleriyle birlikte terim yapısına ve uygulama eklemek de yaygındır . Bu, (bazı) genellik pahasına oldukça makul sistemler sağlar.λ βη

Tabii ki olağan hesabı doğrudan bu sistemlere yazılabilir. Örneğin, kuralı:λβ

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

Tanımlar ve temel sonuçlar hakkında oldukça iyi bir genel bakış burada Nipkow ve Prehofer tarafından verilmektedir .


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.