Lambda Matematik neden bazı birleştiricileri temsil etmiyor?


18

Bu makale , Lambda hesabı tarafından temsil edilemeyen (şeyleri doğru anlıyorsam) birleştiriciler (sembolik hesaplamaları temsil eden) olduğunu göstermektedir:

Yanıtlar:


20

Pratikte yapmak isteyebilecek ve lambda hesabında doğrudan ifade edilemeyecek birkaç şey vardır.

SF hesabı bir örnektir. Etkileyici gücü haber değildir; makalenin ilginç kısmı (slaytlarda gösterilmemiştir) arkasındaki kategori teorisidir. SF hesabı, işlevlerin argümanlarının temsilini incelemesine izin verdiğiniz bir lisp uygulamasına benzer - böylece (print (lambda (x) (+ x 2)))⟹ gibi şeyler yazabilirsiniz "(lambda (x) (+ x 2))".

Bir diğer önemli örnek Plotkin'in paralel veya . Sezgisel olarak konuşursak, lambda hesabının ardışık olduğunu belirten genel bir sonuç vardır: iki argüman alan bir işlev önce değerlendirmek için bir tane seçmelidir. or( or⊤ ⊥) ⟹ , ( or⊥ ⊤) ⟹ ⊤ ve or⊥ ⊥ ⟹ ⊥ gibi bir lambda terimi yazmak imkansızdır (burada ⊥ sonlandırıcı olmayan bir terim ve ⊤ sonlandırıcı bir terimdir). Buna “paralel veya” denir, çünkü paralel bir uygulama her azaltmanın bir adımını yapabilir ve bağımsız değişkenlerden biri sona erdiğinde durabilir.

Lamda hesabında yapamayacağınız bir diğer şey de girdi / çıktıdır. Bunun için fazladan ilkeller eklemeniz gerekir.

Tabii ki, tüm bu örnekler, esasen veri olarak lambda terimlerini temsil eden bir dolaylı seviye seviyesi eklenerek lambda hesabında temsil edilebilir. Ama sonra model daha az ilginç hale gelir - modellenen dildeki işlevler ve lambda soyutlamaları arasındaki ilişkiyi kaybedersiniz.


11

Sorunuzun cevabı, "hesaplamaları" ve "temsil edilenleri" nasıl tanımladığınıza bağlıdır. Sclv bahsettiği LTU üzerinde iplik , diğer taraftan, çeşitli terimlerin yanlış hizalanmış tanımlarına birbirlerine Gecikme konuşurken insanların çoğunlukla oluşur.

Ayrım kesinlikle hesaplama gücünden biri değildir - dikkate alınan her sistem Turing'e eşdeğerdir. Sorun şu ki, sadece Turing-denklik bir ifadenin yapısı veya anlambilimi hakkında hiçbir şey söylemiyor. Hatta, karmaşık kodlamalar veya önemsiz olmayan ilk durumlarını gerektiren hesaplama derece minimalist modellerinde, hatta bir sistem olmadığı belirsiz olabilir olduğu evrensel hesaplama yeteneğine veya evrenselliğinin bir yanılsama sisteminin birinin yorumuna yarattığı olup olmadığını . Örneğin, bu posta listesi tartışmasına bakın 2 durumlu, 3 sembollü bir Turing makinesiyle, özellikle Vaughan Pratt'ın dile getirdiği endişelerle ilgili .

Her halükarda, çizilen ayrım aşağıdaki gibi bir şey arasındadır:

  • İlkel işlemlere semantikleri, işlemler mutlaka semantiği koruyacak şekilde atayarak, doğrudan sistemde temsil edilebilen şeyler
  • Sistemin dışında gerçekleştirilen ve yorumlamanın bir anlamda sistemden "daha basit" olduğu varsayıldığı bir yorumlama prosedürü belirtilerek "dolaylı olarak" temsil edilebilen şeyler
  • Doğrudan temsil sağlayan farklı bir sistem için bir tercüman oluşturmak gibi bir sistemde tam bir dolaylı katman ile simüle edilebilecek şeyler.

Turing denkliği sadece bir sistemin herhangi bir hesaplanabilir fonksiyon için üçüncü kriteri karşıladığını gösterirken, çoğu zaman umursadığımız ilk kriter ya mantıksal bir sistemde ya da bir programlama dilinde (ne ölçüde farklı olursa olsun).

Bu çok resmi olmayan bir açıklama, ancak temel fikir daha kesin bir şekilde çivilenebilir. Yukarıda belirtilen LtU iş parçacığında, benzer hatlar boyunca mevcut çalışmalara birkaç referans bulunabilir .


Hem Schönfinkel'in kombine edici mantığı hem de Kilisenin λ-hesabı başlangıçta mantıksal akıl yürütmenin damıtılmış soyutlamaları olarak tasarlandı ve bu nedenle yapıları mantıksal akıl yürütmeye çok düzgün bir şekilde eşleşiyor ve tersi de geçerli. Ayrıca , eta azaltma kuralı tarafından tarif edildiği gibi bir uzatma varsayımı taşırlar : λx. f xnerede xmeydana gelmezse f, sadecef tek başına .

Pratikte, çok katı bir uzama kavramı çok sınırlayıcı olabilirken, sınırsız yoğunluk, alt ifadeler hakkında yerel akıl yürütmeyi zorlaştırır veya imkansız hale getirir.

SF-hesabı, ilkel bir işlem olarak, sınırlı bir boyutsal analiz biçimi sağlayan modifiye edilmiş bir birleştirici hesabıdır: Kısmen uygulanan ifadeleri yapılandırabilme, ancak ilkel değerleri veya normalleştirilmemiş ifadeleri çözme yeteneği. Bu, ML stili programlama dillerinde olduğu gibi desen eşleştirme veya Lisps'te bulunan makrolar gibi fikirlerle güzel bir şekilde eşleşir, ancak "intuous" terimleri değerlendirmek için bir yorumlayıcı uygulamadan SK- veya λ-hesabında açıklanamaz.

Dolayısıyla, özet olarak: SF-hesabı, mümkün olan en iyi temsilin bir SF-hesabı yorumlayıcısının uygulanmasını içerdiği anlamında doğrudan λ-hesabında temsil edilemez ve bunun nedeni temel bir anlamsal farktır: İfadelerin dahili olması gerekir mi? yapı mı yoksa sadece dışsal davranışlarıyla mı tanımlanıyorlar?


Hesaplamaların Turing Makinesinde nasıl temsil edilebileceği konusunda farklı görüşler olduğu anlamına mı geliyor?
Hawkeye

5

Barry Jay'in SF hesabı, uygulanmadığı, işlevsel olmayan terimlerin yapısına bakabilir. Lambda hesabı ve geleneksel kombine edici mantık tamamen işlevseldir ve bu yüzden bunu yapamazlar.

Lambda hesabının saflığı ihlal eden, çoğu yeniden yazma stratejisini durum ekleme, kontroller (örn. Devam yoluyla) veya mantık değişkenleri gibi bir dereceye kadar düzeltmeyi gerektiren birçok uzantı var.


2
Ayrıca Lambda the Ultimate'daki genişletilmiş tartışmaya / tartışmaya da bakınız: lambda-the-ultimate.org/node/3993
sclv
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.