Tip teorisinde iyi bir fesih ve durdurma kanıtı kavramı var mı?


10

Yapıcı tip teorisi, köri howard yazışmaları altındaki temel yorumu ile sadece toplam, hesaplanabilir fonksiyonlardan oluşur. Literatürde, bazılarının fonksiyonel programlarda sonlandırılmayı temsil etmek için "hesaplamalı tip teorisi" kullanımı üzerine söylendiği, ancak karşılaştığım makalelerde, bu teorinin ana motivasyonu gibi görünmemektedir (Örneğin, Benton , fesih etmeme konusunda çok ayrıntıya girmeden determinizm, devam ve istisnalardan bahseder), bu yüzden henüz hesaplama tipi teorisi kullanarak feshetmenin sağlam bir yorumunu veren bir makale bulmadım.

Özellikle, aradığım şey , , türünün muhtemelen sonlandırılmayacak bir hesaplamasını temsil eden bir tür verildiğinde , nın türünün sona erdiğine dair bazı kanıtlar olmalıdır. , ve verildiğinde , terimini oluşturabiliriz .birT(A)x:T(A)H(x)x:T(A)p:H(x)x~:bir

Bunun için motivasyonum, nihayetinde hesaplama karmaşıklığı teorisindeki kavramları yapıcı tip teorisiyle daha resmi olarak ilişkilendirebilmek istiyorum. Özellikle, resmi bir teori olarak yapıcı türlerin bir durma kehanetine erişim ile hangi gücün kazanıldığına ilgi duyuyorum ve bunu yapmak için, elbette, olası bir sonlandırmamaya ve durma kanıtlarına dair resmi bir fikrim var. onunla birlikte bir tip-teorik çerçeve içinde ilerleyebiliriz.


3
Tür Teorisinde Constable-Mendler, Özyinelemeli Tanımlara baktınız mı? Bunlar kısmi fonksiyonu her bir sabit nokta yinelemeli tanımı için belirleyici bir yol vermek den A için B bir alan yüklem d o m ( f ) için bu tür X bir , d O m ( f ) ( x ) tipini temsil delillerinden bu ön de duraklamalara x . Bunun Nuprl'de uygulandığına inanıyorum. fbirB dÖm(f)xbirdÖm(f)(x)fx
Ulrik Buchholtz

3
Aradığınız gecikme monad ?
Andrej Bauer

@UlrikBuchholtz Sanırım bu aradığım şeye oldukça yakın, ancak gazetede kullanılan Nuprl gösterimi ile ayrışmakta zorluk çekiyorum - ki buna benzemiyorum. Eğer doğru anlamak, bunlar esas olarak bir kısmi özyinelemeli işlev tanımlamak için B (ya da en azından onları tespit) $ \ {x, toplam özyinelemeli fonksiyonu olarak A | dom (f) (g) \} - B (Sayfa 27'nin altındaki açıklamaya bakın)birB
Nathan BeDell

Yanıtlar:


11

Tip Teorisinin resmileştirmedeki temel uygulamalarından biri, programlama dillerini ve genel olarak hesaplamayı incelemek olduğu için, birçok düşünce muhtemelen sonlandırılmayacak programları temsil etme yollarına girmiştir.

Burada tam bir anket yapmayacağım, ancak farklı yönlerin ana itişmelerine işaret edeceğim.

  • "İlişkisel" yaklaşımı: ilişkiler dediğim gibi varsayımsal programları tanımlayabilirsiniz, iff tutan f de tanımlanan x ve f ( x ) = y . Bu genellikle Kleene T yüklemiyle yapılır . Bu, klasik teoride olduğu gibi tip teorisi biçimlendirmelerinde de işe yarar (tabii ki though x ( y , F x y ) ( ¬ y , F x y ) ispatlayamazsınız ).F x yfxf(x)=yx(y,F x y)(¬y,F x y)

    Bunu yapmanın daha karmaşık bir yolu "Bove-Capretta" yöntemidir (bkz . Her yinelemeli işlev için belirli bir hesaplamanın sonlu olduğu gerçeğini kodlayan "erişilebilir bir yüklem" tanımlayan Tip Teorisinde Özyineleme Modellemesi . bu ekstra girişler olmadan fonksiyonu tanımlamak için, olası her giriş kombinasyonunun erişilebilir olduğunu kanıtlamanız gerekir.

  • bir

    codata Delay A =
    | Now : A -> Delay A
    | Later (Delay A)
    

    Bu, olasılıkla sonsuz bir Laterbelirteç akışını kodlar (hesaplama "keneleri") belki bir sonuçla bitebilir Now a. Feshetmeme, programa benzememekle eşdeğerdir

    loop = Daha sonraki loop ve sonlandırma, aşağıdakiler üzerinde endüktif bir yüklemle tanımlanabilir Delay A:

    data Terminates : Data A -> Prop =
    | Term_now : forall x, Terminates (Now x)
    | Term_later : forall d, Terminates d -> Terminates (Later d)
    

    Agda-istas'ın kısmi monad olarak adlandırdıkları bu konuda söyleyecek çok şeyleri olduğunu düşünüyorum (bkz. Örneğin Danielsson ).

  • "Kısmi tip teori" yaklaşımı : bu biraz daha deneyseldir (teori hala üzerinde çalışılmaktadır), ancak aslında iki tip fonksiyonun olmasıyla başa çıkmak için geliştirilen bazı teoriler vardır. tip teorisini yazın: ispat terimleri ve programlar. Bu şeyler hakkında makul bir teori elde etmek zor (ve teorinin tutarlılığını korumak), ancak burada Casinghino ve arkadaşları tarafından ciddi bir girişim ve Kimmel ve arkadaşları tarafından benzer bir çaba .

Emin değilim başka yaklaşımlar var ve birisi bu listeyi tamamlamak isterse mutlu olurum.

Π10

Tipik teori ile karmaşıklık teorisi arasında genellikle örtük hesaplama karmaşıklığı şemsiyesi altında oldukça verimli başka etkileşimler de vardır .


İlginç, bilgi için teşekkürler! Kısmi tip teori yaklaşımının muhtemelen aradığım şeye en yakın olduğuna inanıyorum - ve en azından Kimmel gazetesi, özellikle aradığım şeyi belirli bir düzeyde sağlıyor gibi görünüyor ("tcast" için yazma kurallarına bakın. ).
Nathan BeDell
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.