Yapılandırıcılar neden çağrı / cc'yi çok önemsemiyorlar?


15

Bir süre önce birisinin bana çağrı / cc'nin Peirce yasasını uygulayarak klasik kanıtlar için kanıt nesnelerine izin verebileceğini söylemiştim. Son zamanlarda konu hakkında biraz düşündüm ve bununla ilgili bir kusur bulamıyorum. Ancak başka kimsenin bu konuda konuştuğunu göremiyorum. Tartışma boş görünüyor. Ne oluyor?

Bana öyle geliyor ki, bir bağlamda gibi bir yapınız varsa, o zaman iki şeyden biri doğrudur. Ya örneğine erişebilir vaka kontrol akış burada varamaz geldiği geçerli bağlamda nasılsa biz ne olursa olsun YA verilen varsaymak güvenlidir aracı geri dönebileceği tek yol , bir örneği oluşturarak ve bunu iki argümanı ( örneği) uygulayarak yapar . Böyle bir durumda, bir örneği oluşturmanın bazı yolları zaten vardıf:¬(¬P)f:¬(¬P)f:(P)fPP)P; çağrı / cc bu inşaat benim için dışarı çekmek için makul görünüyor. Buradaki akıl yürütmem bana biraz şüpheli görünüyor, ancak karışıklığım hala duruyor. Çağrı / cc sadece ince havadan bir örneğini oluşturmuyorsa (nasıl olduğunu göremiyorum) sorun nedir?P

Call / cc içermeyen iyi yazılmış bazı terimlerin normal formları yok mu? Bu tür ifadelerin şüpheli olmalarına neden olan başka bir özelliği var mı? Bir yapılandırmacının çağrı / cc'yi sevmemesinin dikkat çekici bir nedeni var mı?



Yanıtlar:


19

Yapıcı matematik sadece resmi bir sistem değil, matematiğin ne hakkında olduğunun anlaşılmasıdır. Ya da farklı bir ifadeyle, her türlü anlambilim yapıcı bir matematikçi tarafından kabul edilmez.

Yapıcı bir matematikçiye call/cchile gibi görünüyor. Biz tanık nasıl düşünün kullanılarak :p¬pcall/cc

  1. ¬ s kanıtladığı iddia edilen fonksiyonunu sunuyoruz . Gerçekte f bir püf noktasıdır.f¬pf
  2. Herhangi biri ispatı için başvurması durumunda , geri alma zamanını serbest bırakır ve eldeki ispatı ile hakkındaki fikrini değiştirir : bu kez ispatı olduğunu iddia eder .fpfcall/ccpp¬pp

Yapıcı bir ayrılma anlayışı algoritmik karar verebilirliktir , ancak yukarıdakiler neredeyse hiç karar vermez . Bir test olarak, yapıcı bir matematikçi size call/ccher Turing makinesinin durduğunu veya ayrıldığını kanıtlamaya nasıl yardımcı olduğunu sorabilir . Peki bu gerçeğe tanık olan program nedir? (Halting Oracle olmalı.)


Ah!! Aradığım türden bir şey olduğunu düşünüyorum.
Jake

9

Belirttiğiniz gibi, klasik mantığın bu anlamda olası yapıcı bir yorumu vardır. Klasik mantık olması equiconsistent oldukça zaman bilinmektedir intuitionistic mantığı (diyelim ki, Heyting Aritmetik) (zaten 1933 yılında, örneğin ile Godel çifte olumsuzluk çevirisini kullanarak).

Daha sofistike bir argüman olarak, Peano Aritmetik olduğu gösterilebilir muhafazakar için HA üzerinde bildirimler. Sonucun özü, c a l l / c c içeren klasik Π 0 2 ispatlarının, bu yapı olmaksızın (bir CPS dönüşümü ile) bir hesaplama içeriğiyle aynı hesaplama içeriğine sahip olmasıdır .Π20Π20call/cc

Ancak bu doğru değil yukarıdaki ifadeleri için : in ifadeleri Σ 0 3 Pensilvanya kanıtlanabilir, bir tanık ayıklanması için normal bir biçim müsait olmayabilir! Bilgisayar bilimcileri bu düzeyde kanıtlarla hesaplamayı umursamayabilirler, ancak felsefi düşünceler için biraz rahatsız edici : bir şeyin varlığını kanıtladık mı, kanıtlamadık mı?Π20Σ30

Bu, ilavesiyle yapıcı olmayan mantığın neden "sabitlenmesinin" yetersiz olabileceğini özetliyor .call/cc

Yani varlık vardır, adı geçen bir çok Krivine Makinesi, Parigot hesabı (örneğin "klasik Curry-Howard" çerçevesinde hesaplama hesaplama yönlerini keşfederek işin, ) ve diğerleri. Genel bir bakış için buraya bakın .λμ¯μ~

Son olarak, yüklem analizi ve aritmetik durumlarda durum oldukça iyi anlaşılırken, daha güçlü teorilerin çok daha az araştırıldığını belirtmek yararlı olabilir. Örneğin, IIRC, ZFC, cümle için IZF üzerinde muhafazakardır (ZFC, aritmetik cümleler için ZF üzerinde muhafazakardır ve ZF, IZF üzerinde muhafazakardır), bu da seçim aksiyomu için hesaplamalı bir anlam olduğunu gösterir. Ancak bu çok aktif bir araştırma alanıdır ( krivine , Berardi ve ark. )Π20

Düzenleme: Mathoverflow ile ilgili çok alakalı bir soru burada görünür: /mathpro/29577/solved-sequent-calculus-as-programming-language


1
Bu denklik yapıcı olarak doğru mu?
Geoffrey Irving

3
@GeoffreyIrving: evet, sadece sezgisel akıl yürütmeyi kullanarak klasik tutarlılığa ( kendi başına klasik akıl yürütme değilse) tamamen inanç "bootstrap" olabilir . Bu Gödel'in çeviri için orijinal motivasyonuydu . ¬¬
cody

"Tanığın çıkarılmasına uygun normal bir formu olmayabilir". Anlamsal olarak, bu terimlerin anlambilimin altında olduğu anlamına mı geliyor yoksa yabancı bir şey mi demek?
Jake

3
A¬Ainr (fun x -> callcc(...))A

Anladım. Teşekkürler! Hala cevabınızın bir kısmını sindiriyorum. Aritmetik hiyerarşiye pek aşina değilim, bu yüzden işlemek biraz daha zamanımı aldı.
Jake

8

Hem Andrej'in hem de Cody'nin cevabına katılıyorum. Ancak, yapılandırmacıların neden kontrol operatörlerini (call / cc) önemsemeleri gerektiğini de belirtmek gerekir .

¬¬PP

Π20

PΣ10

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.