Basitçe yazılan lambda hesabında fonksiyon eşitliğini belirleyen algoritma?


10

Basit yazılan lambda terimlerinin beta eşitliğinin karar verilebileceğini biliyoruz. M, N: σ → τ verildiğinde, tüm X: σ, MX NX için karar verilebilir mi ?β


Basitçe Yazılan Lambda Matematik / STLC wikipedia. Turing tamamlanmadığından, eşdeğeri olan başka bir temel hesaplama modeli var mı? wikipedia'ya STLC için karar verilebilir durma algılama algoritmasını incelemek de yararlı olabilir ...
vzn

3
@Marzio: Aslında, buradaki sorunun sorunun formüle edilmesiyle ilgili olduğunu düşünüyorum, ki bu oldukça kesin değil. Düzgün bir şekilde formüle edildiğinde, bu araştırma düzeyinde bir sorudur. Daha iyi bir formülasyon şu olabilir: basit bir şekilde yazılmış lambda terimlerinin beta eşitliğinin karar verilebilir olduğunu biliyoruz. Verilen , herkes için olsun Karar verilebilen olan , ? Cevap genel olarak olumsuzdur (bu nedenle Viclib'in aradığı algoritma yoktur). Belki de beklenmesine rağmen, bu a priori değildir ve 90'lı yıllardan birkaç makalenin bir sonucudur. M,N:στX:σMXβNX
Damiano Mazza

@DamianoMazza: tamam, gerçekten kapatmak için oy vermedim ... Yorumumu sileceğim, sizinkini bırakacağım ve OP'nin yorumunu / düzenlemesini bekleyeceğim.
Marzio De Biasi

@DamianoMazza ve Marzio, böyle resmi bir soru soracak kadar bilgim yok. Keşke yapsaydım ama bu okulumda öğrendiğim bir şey değil. Aslında, soruyu sormadan önce gerçekten denediğim bir şey olan "beta-eşitlik" için çalışmak bile bana bu terimin var olmadığı gibi çok az sonuç veriyor. Bu yüzden, tüm bunları öğrendiğiniz ve okuduğunuz hakkında bir fikrim bile yok. Konuyu kendi kendine incelemeye başlamak için lütfen beni doğru yere yönlendirir misiniz? Soru güncellendi.
MaiaVictor

1
@Viclib: beta-denklik teknik bir kavramdır, cevabımda bundan bahsetmekten kaçındım. Kabaca, iki terim aynı sonucu verdiğinde beta eşdeğeridir. Yani tüm için demek, ve aynı işlevi anlamına gelir . ( Tipik veya türetilmemiş ) lambda hesabı hakkında bilgi edinmek için, Peter Selinger'in notları ve Curry-Howard ile ilgili Sørensen ve Urzyczyn Ders Notları'nın mükemmel başlangıç ​​yerleri olduğunu düşünüyorum. MXβNXXMN
Damiano Mazza

Yanıtlar:


13

Yorumumda söylediğim gibi, genel olarak cevap hayır.

Anlaşılması gereken önemli nokta (bunu, bu şeyleri öğreniyor gibi görünen Viclib için söylüyorum), tüm programların / hesaplamaların hiçbir şekilde sona ermediği bir programlama diline / bir dizi makineye sahip olmanın bu işlev eşitliğini (yani, programlar / makineler aynı işlevi hesaplar) karar verilebilir. Kolay bir örnek: polinom saatli Turing makineleri setini alın. Tanım olarak, bu tür makinelerin tümü tüm girdilerde sona erer. Şimdi, herhangi bir Turing makinası verilen , bir Turing makinesi var girişi dize göz önüne alındığında, bu , Simülasyonu yapılanhesaplanması adımlarını sabit girişine (diyelim ki, boş dize) ve eğer kabul en son bulanMM0x|x|MM|x|adımlar, aksi takdirde reddeder. Eğer o zaman hemen reddeden bir Turing makinesi, ve her ikisi (besbelli) polynomially-saat hızına ve biz karar verebilir henüz eğer ve , aynı işlevi hesaplamak (Bu durumda, ya, aynı dili karar) boş dizede (hatırlayın, keyfi bir Turing makinesi) olup olmadığına karar verebiliriz .NM0NM0NM

Basitçe yazılan calculus (STLC) durumunda, benzer bir argüman işe yarar, ancak STLC'nin ifade gücünü ölçmek yukarıdaki durumda olduğu kadar önemsiz değildir. Yorumumu yazdığımda, 90'lı yılların başlarından itibaren Hillebrand, Kanellakis ve Mairson'un birkaç makalesi vardı, bu da normal Kilise tamsayı türlerinden daha karmaşık tipler kullanarak, kişinin STLC'de yeterince karmaşık kodlayabildiğini gösteriyor. yukarıdaki argümanın çalışması için hesaplamalar. Aslında, şimdi görüyorum ki gerekli materyal zaten Mairson'un Statman teoreminin basitleştirilmiş kanıtıdır:λ

Harry G. Mairson, Statman teoreminin basit bir kanıtı. Teorik Bilgisayar Bilimi, 103 (2): 387-394, 1992. (Online buradan bulunabilir ).

Bu yazıda, her Turing makinesi verilen Mairson gösterir , basit bir türü vardır ve uzun dönem geçiş fonksiyonu kodlayan . (Eğer STLC'nin Kilise tamsayıları üzerindeki aşırı zayıf ifade gücü akılda kalırsa, bu a priori değildir. Aslında Mairson'un kodlaması hemen değildir). Bundan bir terim oluşturmak zor değilMσλδM:σσM

tM:nat[σ]bool

(burada ile örnekleme olan Church tamsayılar tip) bu şekilde azaltır , eğer en son bulur adımları zaman boş dizeyi beslediyse veya aksi takdirde düşer . Yukarıdaki gibi, eğer ile temsil edilen fonksiyonun sabit fonksiyonu olduğuna karar , boş dizgide sonlandırılmasına karar .nat[σ]σtMn_1_Mn0_tM0_M


Muhtemelen STLC'de çok değişkenli polinom fonksiyonlarının kodlamasını kullanmak ve daha sonra Matiyasevich teoremine hitap etmek mümkündür .
cody

Bu nedenle STLC tam turlama değil, bir Turing makinesinin geçiş işlevini kodlayacak kadar güçlü !? Yani bir Turing Makinesi bir bant artı üzerinde çalışan bir STLC programı olarak tanımlanabilir mi?
MaiaVictor

2
@Viclib: Bir düşünün: keyfi bir Turing makinesinin bir adımını simüle etmek fazla hesaplama gücü gerektirmez. Temel olarak, yalnızca sınırlı veri türlerine (if-then-else ile), listelere (temel işlemler ile: eksileri, kuyruk vb.) Ve sıralı çiftlere ihtiyacınız vardır. (Aslında, Genişletilmiş Kilise Turing Tezi, böyle düşük karmaşıklığın her makul makine modeli için ortak olduğunu iddia ediyor). STLC'nin eksik olduğu şey, girdiden bağımsız olarak TM geçişleri "ad libitum" çalıştırma yeteneğidir: bunları yalnızca giriş boyutundaki üstel bir kuleye eşit sayıda tekrarlayabilir (bkz. Mairson'ın makalesi).
Damiano Mazza

1
@cody: Teşekkürler, o kağıdı bilmiyordum. Haklısın sanırım
Damiano Mazza
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.