Λ-hesabı esasen nedir?


11

Λ-hesabı ile ilgili felsefi bir soru diyorum.

Λ-calculus'u keşfettiğinizde orada yapabileceğiniz her şeyi görmekten şaşıracaksınız. Tamsayılar, aritmetik işlemler, booleans, if-then-else deyimleri, döngüler, özyinelemeli işlevler, vb. Tanımlayabilirsiniz. Hesaplamanın tamamlandığı kanıtlanmıştır.

Ancak diğer tarafta, eğer λ-calculus'taki işlevlerle neler yapabileceğinizi düşünürseniz, yapabileceğiniz tek şeyin onu bir işlevi beslemek olduğunu ve başka bir işlevi döndürdüğünü fark edersiniz. Ve bu süreç asla bitmez.

Öyleyse bir hesaplamadan nasıl sonuç çıkarabilirsiniz?

Bir ifadenin sonucunun işlev olduğunu varsayalım f. fBeklediğiniz şeyin olup olmadığını kontrol etmek istiyorsunuz. Test edebilir, bildiğiniz bir işlevi alabilir, uygulayabilir fve alabilirsiniz g. Ancak kontrol etmek gdoğrudur, şimdi ne yaptığını doğrulamanız gerekir g. Ve baştan başladın. Peki nasıl bir şey anlatabilirsin f?

Bana öyle geliyor ki λ hesabındaki tüm fonksiyonları tek bir fonksiyonla, kimlik fonksiyonuyla değiştirebiliyorsunuz I = λx.xve her şey λ hesabında tarif edildiği gibi çalışıyor. Kilise numarası 3verildiğinde fve xgeri döndüğünde f(f(f(x))). Ama sadece fve beri xolabilir I, o geri döner I. Iuygulanır Ive Iayrıca geri döner I. Yani Itanımını tatmin eder 3. “Mantıksal ifadenin” (λxy.x)ve (λxy.y)olacak 2 bağımsız değişken, ihtiyaç Ive Iher iki mantıksal ifadenin dönecektir böylece I. Tanımlarına göre tam olarak davransalar da, her biri kimliğe eşdeğerdir.

Farkı nasıl yaratıyorsunuz? Λ-hesabının tek bir fonksiyondan daha fazlasını ele aldığını nasıl gösterirsiniz?

Kimlik kavramı var mı? Bir işlevi değerlendirmeden hemen tanımlayabilir misiniz? Eşitlik için 2 işlevi test etmenin bir yolu olmadığını kanıtladım.

Ya da λ-hesabı fonksiyonlar hakkında değil, yaptıkları şeyin resmi tanımı hakkında mı? Bu, λ ifadelerinin sadece işlevlerin ne yaptığını tanımlamakla kalmayıp, aynı zamanda işlevlerin manipüle ettiği verilerdir. Eğer yazdığınızda A B, geçerli olmayan Aiçin B, ama bir dizeyle açıklanabilir işlevi uygulamak Abir fonksiyonun formal tanımına yer alan Bbaşka resmi tanımını dönüyor.

Λ-hesabında gerçekte neler oluyor? İlgilendiği matematiksel nesneler nedir?


Takip et:

Tamam, aşağıdaki cevaba göre, λ-hesabı matematiksel anlamda fonksiyonlar hakkında değil, λ ifadeleri olarak ifade edilebilecek fonksiyonların alt kümesi hakkında görünüyor. Veya λ ifadelerinin manipülasyonu hakkında daha fazla bilgi.


2
Nihai soruyu daha az fikir odaklı bir şeye yeniden ifade edebilir misiniz? Bunun için sağlam, tartışmasız bir cevap olmalıdır.
Telastyn

Eğitimimden itibaren, λ-hesabı sadece beynimi incitmek için var. Hala bu sınıftan nasıl sağladığımı bilmiyorum.

Yanıtlar:


9

Gerçekten de lambda hesabı terimlerinin anlamsal eşdeğerliğini belirlemek imkansızdır. Bu Rice teoreminin bir uygulamasıdır. Bununla birlikte, terimleri sözdizimsel olarak karşılaştırmak kolaydır , yani tam olarak aynı yapıya sahip olup olmadıklarını test edin (eşdeğer olarak "dize gösterimleri" aynıysa). Sonuç almak için ihtiyacınız olan tek şey bu.

Örneğin n = f(i), doğallardan doğallara işlevleri hesaplamak iiçin lambda kalkülüs fonksiyonunuza parametre olarak kilise kodlamasını sağlar, duruncaya kadar azaltma kuralları uygular ve sonuçta ortaya çıkan terimi incelersiniz. Kilise rakamlarının yapısıyla eşleşiyorsa, nkodladığı sayıyı çıkarın. Bu senin sonucun. Ortaya çıkan terim bir kilise rakamı gibi görünmüyorsa veya azaltma durmuyorsa, işlev tanımsızdır i.

Terimler etkin bir şekilde "kod" ve "veri" olarak çifte görevi alır. Bu özel bir şey değil: Bir Turing makinesinin bandı (bazı alfabe üzerindeki bir dize) - ve sık sık --- bir Turing makinesinin veya bir yönünün kodlanması olarak yorumlanabilir. Benzer şekilde, bir von Neumann makinesinin ana belleğindeki bitler ya bir programın kodlaması ya da başka bir şeyin kodlaması olabilir. Ya da ikisini birden. Farklı olan yalnızca "varsayılan perspektif" tir.


Kilise rakamlarını içeren bir hesaplama sonucunun ifadesi her zaman (λfx.f (f (fx))) gibi kanonik forma çözülecek mi? Veya aynı rakamdan farklı eşdeğer ifadeler alabilir misiniz?
Florian F

@FlorianF Bu tür kanonik olmayan (alfa denkliğine kadar) terimler olduğundan neredeyse eminim, ancak eğer öyleyse, programın dikkatli bir şekilde inşa edilmesinden kaçınılabilir.
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.