Coq tarafından hesaplanabilen işlevlerin sınıfı


22

Sınırsız bir hesaba izin vermediğinden, Coq mutlaka Turing-complete değildir. Coq'un hesaplayabileceği işlevlerin sınıfı nedir? (ilginç bir özelliği var mı?)

Yanıtlar:


18

Benjamin Werner, Tiplerdeki Kümeler, Kümelerdeki Kümeler başlıklı makalesinde ZFC'nin sayısız erişilemezlik ve Endüktif Yapılar Hesabı ile karşılıklı yorumlanabildiğini kanıtlamıştır .

Bu, kabaca, ZFC'de sayılabilir bir şekilde erişilemeyen birçok toplamla gösterilebilecek herhangi bir işlevin Coq'da tanımlanabileceği anlamına gelir. Bu nedenle, büyük kardinaller üzerinde çalışan bir set teorisyeni değilseniz, şimdiye kadar istediğiniz herhangi bir hesaplanabilir fonksiyonun Coq'da tanımlanamaması pek olası değildir.


7
Coq tercümanı hariç ...
Jules

6
Aslında, olabilir Coq içinde Coq tercüman (aslında keyfi genel özyinelemeli fonksiyonlar) uygular. CIC tutarlıysa, tercümanın elbette tam bir fonksiyon olduğunu ispat edemezsiniz, ancak kesinlikle uygulayabilirsiniz.
Neel Krishnaswami

2
Yapıcı asansör monad, Kullanabilirsiniz Genel özyinelemeli fonksiyonlar yazmak için . Daha sonra typechecker'ınız \ mathsf {bağlam} \ ila \ mathsf {terim} \ ila \ mathsf {type} \ ila \ mathsf {bool} _ \ bot türüne sahip olacaktır . Bu temelde Bove / Capretta yaklaşımıdır. (Ayrıca bkz. Benton, Kennedy ve Varming'in "Coq'ta Bazı Alan Teorisi ve Tercüme Anlambilimi", dl.acm.org/citation.cfm?id=1616077.1616090. )Aνα.A+αcontexttermtypebool
Neel Krishnaswami

1
@Neel: Bu hile yapmak. Ve iyi bir sebepten ötürü, aksi halde tutarsızlığımız olur.
Andrej Bauer

2
Hile yapıyor çünkü değerlendirme işlevinin bir şeyi değerlendirmesi gerekiyor , size cevap vermemesi gerekiyor .
Andrej Bauer
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.