Yol indüksiyonu yapıcı mıdır?


17

İçinden okuyorum HOTT kitapta ve yol indüksiyon ile zor anlar var.

I bölümünde tip baktığımızda 1.12.1 : bunun ne anlama geldiğini anlamada bir sorunum yok (bunu kontrol etmek için türü bellekten yazdım).

ind=A:C:x,y:A(x=Ay)U((x:AC(x,x,reflx))x,y:Ap:x=AyC(x,y,p)),

Benim sorunum bir sonraki çok ifade: ilk izlenim bu son sentezleme yok oldu tanımlamak elde edilen fonksiyonu ama sadece belirtmektedir onun mülkiyet .

with the equalityind=A(C,c,x,x,reflx):≡c(x)
f:x,y:Ap:x=AyC(x,y,p),

Bu, indüksiyon ilkeleri , veya önceki örneklerinin aksine - orada olan denklemler tanımlayan bu elemanlar için - biz aslında tesislerinde verilen çıkan işlevini oluşturmak için biliyorum. Hangi bölüm boyunca ilan tip teorisi "yapıcılığı" ile uyumludur. ind A + B ind NindA×BindA+BindN

geri dönersekind=A , tanımlanmadığı gerçeğinden şüpheliydim. öğesinin f var olduğunu belirtmek bölümün geri kalanıyla uyumsuz görünüyordu. Ve gerçekten, bölüm 1.12.1 benim izlenim yanlış olduğunu stres gibi görünüyor ve aslında biz var tanımlanmış

... fonksiyonu f : Π x , y : Bir Π s : X = bir y( x , y , p ) , ile tanımlanan gelen yol indüksiyonu , ayrıca tatmin ...f:x,y:Ap:x=AyC(x,y,p),
f ( x , x , yansıma x ) : c ( x )c:x:AC(x,x,reflx)
f(x,x,reflx):≡c(x)

Bu beni tamamen karıştırıyor, ama bu noktanın diğer tüm gelişmeler için çok önemli olduğunu hissediyorum. Peki için yapılan iki okumadan devam etmeliyim? Ya da, muhtemelen, bazı önemli incelikleri kaçırıyorum ve cevap "ikisi de" değil mi? ind=A


Bu arada, bu gerçekten HoTT'ye özgü bir soru değil, daha genel bir "bağımlı tipler" sorusudur.
cody

Yanıtlar:


12

Hesaplama kurallarının bahsettikleri nesneleri "tanımlaması" veya "yapılandırması" yanılsamasıdır. denkleminin bunu "tanımlayamadığını", ancak diğer durumlarda da bunun doğru olduğunu gözlemleyemediğinizi doğru bir şekilde gözlemlediniz. Özellikle açıkça "kararlı" görünen birim tip 1 için indüksiyon prensibini ele alalım . HoTT kitabının 1.5 bölümüne göre i n d 1 : C : 1 T y p e C ( ) x : 1 Pind=A1i n d 1 ( C , c , ) = c denklemi ile . Bu "define" veya "yapısı" Does i n d 1 o ne olduğu hiçbir şüphe bırakır anlamında i n d 1 "yok"? Örneğin, C ( x ) = N ve a = 42'yi ayarlayın ve i n d 1 ( C , 42 ,

ind1:C:1TypeC()x:1P(x)
ind1(C,c,)=c.
ind1ind1C(x)=Na=42 tip 1'in belirli bir ifadesi e için. İlk düşünceniz bunu 42'ye düşürebiliriz,çünkü "1'in tek elementidir". Ancak oldukça kesin olmak gerekirse, i n d 1 denklemiyalnızca e gösterdiğimizde uygulanabilir, örneğin e bir değişkenolduğunda imkansızdır. Bundan kaçınmaya çalışabilir ve sadece kapalı şartlarla hesaplamaya ilgi duyduğumuzu söyleyebiliriz, bu yüzden e kapatılmalıdır.
ind1(C,42,e)
e1421ind1eee

Tip 1 her kapalı terim yargısal olarak değerine eşit değil mi? Bu aslında kötü detaylara ve karmaşık normalizasyon kanıtlarına bağlıdır. Hott durumunda cevap "hayır" çünkü e Univalence Axiom örneklerini içerebilir ve (bu konuda ne yaptığını belli değil HOTT açık sorun).e1e

Biz tipi teorisinin bir versiyonunu dikkate alarak univalance sorun aşmak olabilir gelmez türdeki her kapalı dönem çok iyi özelliklere sahip judgmentally eşittir . Bu durumda, biz söylemek yanlış olduğunu do ile hesaplamak için nasıl i n d 1 , fakat:1ind1

  1. Bir kimlik Çeşidi her kapalı dönem judgmentally olacaktır, çünkü kimlik türü için tutacaktır aynı bazı eşit , ve bu nedenle daha sonra denklem için i n d = bir edecek kadar hesaplamak için bize.refl(a)ind=A

  2. Bir tür kapalı terimlerle nasıl hesaplanacağımızı bildiğimiz için, aslında bir şey tanımladığımız anlamına gelmez, çünkü bir kez açıklamaya çalıştığım gibi, bir tür için kapalı terimlerden daha fazlası vardır .

Örneğin, (kimlik tip olmadan) Martin-Löf tipi teori şekilde etki alanı teorik yorumlanabilir içeren iki elemanları ve , burada tekabül için ve olmayan sonlandırılması. Ne yazık ki, tür teorisinde sonlandırıcı olmayan bir ifade yazmanın bir yolu olmadığından, adlandırılamaz. Sonuç olarak, için denklem i , n d 1 vermez değil üzerinde hesaplamak için nasıl bize (iki bariz seçimler "hevesle" olmak ve "tembel").1ind1

Yazılım mühendisliği terimleriyle, şartname ve uygulama arasında bir karışıklığımız olduğunu söyleyebilirim . Kimlik türleri için HoTT aksiyomları bir spesifikasyondur . Denklem nasıl hesaplamak için, ya da nasıl yapılacağını bize söylemek değildir i n d = değil, ancak ben nind=C(C,c,x,x,refl(x))c(x)ind=C "uygulandı", denklemi karşılamasını istiyoruz. Tür ister ayrı bir sorundur i n d = yapıcı bir şekilde elde edilebilir.ind=Cind=C

Son olarak, "yapıcı" kelimesini nasıl kullandığınızdan biraz yoruldum. Sanki "yapıcı" nın "tanımlanmış" ile aynı olduğunu düşünüyorsunuz. Bu yorum altında Halting kehaneti yapıcıdır, çünkü davranışı üzerine dayattığımız gereksinimle tanımlanır (yani verilen makinenin durup durmamasına göre 1 veya 0 çıktısı). Yalnızca yapıcı olmayan bir ortamda var olan nesneleri tanımlamak mümkündür. Tersine, gerçekte hesaplanamayan özellikler ve diğer şeyler hakkında yapıcı bir şekilde konuşmak mükemmel bir şekilde mümkündür. Burada biridir: ilişki ile tanımlanan , H ( n , d )HN×{0,1} yapıcıdır, yani bu tanımda yapıcı bir bakış açısından yanlış bir şey yoktur. Sadece çok yapıcı bir olduğunu göstermektedir edilemez olur lH toplam ilişkidir ve bunun karakteristik χ H : N x { 0 , 1 } p r o s değil yoluyla faktör yok b O O l

H(n,d)(d=1n-th machine halts)(d=0n-th machine diverges)
HχH:N×{0,1}Propbool, bu yüzden değerlerini "hesaplayamayız".

Zeyilname: Sorunuzun başlığı "Yol indüksiyonu yapıcı mı?" "Yapıcı" ve "tanımlanmış" arasındaki farkı temizledikten sonra soruyu cevaplayabiliriz. Evet, yol indüksiyonunun belirli durumlarda yapıcı olduğu bilinmektedir:

  1. Güçlü normalizasyon gösterebilmemiz için Univalence olmadan tip teorisini kısıtlarsak, yol indüksiyonu ve diğer her şey yapıcıdır, çünkü normalleştirme prosedürünü gerçekleştiren algoritmalar vardır.

  2. Tip teorisindeki her kapalı terimin bir Turing makinesine nasıl karşılık geldiğini açıklayan tip teorisinin gerçekleştirilebilirlik modelleri vardır. Bununla birlikte, bu modeller, Univalence'ı dışlayan Streicher'in Axiom K'sini karşılar.

  3. Tip teorisinin (yine Univalence olmadan) yapıcı küme teorisi CZF'ye çevirisi vardır. Bir kez daha, bu Streicher'in aksiyomunu K doğrular.

  4. Gerçekleştirilebilirlik modellerinde , Streicher'in K'sı olmadan tür teorisini yorumlamamıza izin veren bir groupoid modeli var. Bu, Steve Awodey ve ben tarafından yapılan ön çalışma.

Gerçekten, Univalence'ın yapıcı statüsünü çözmemiz gerekiyor.


Bu cevabın şimdi (kısmen) güncel olmadığını düşünüyorum
WorldSEnder

Gerçekten de, bu arada kübik tip teorisi pozitif bir cevap verdi: Univalent tip teorisinin yapıcı bir modeli var.
Andrej Bauer

7

Ben HoTT insanı değilim, ama iki sentimi atacağım.

Diyelim ki yapmak istiyoruz. Bunu nasıl yaparız? Diyelim ki bize herhangi bir x , y : A ve eşitliklerinin bir kanıtı verildi p : x = A y . Rasgele tip A hakkında hiçbir şey bilmediğim için, x , y'nin yapısı hakkında hiçbir şey bilmiyorum

fA:x,y:Ap:x=AyC(x,y,p)
x,y:Ap:x=AyAx,y. Ancak, belirli eşitlik türü hakkında bir şey biliyorum: tek bir kurucu var, nedenle, bazı a : A için p r e f l a , ama bu x = a = y'yi zorlar . Bu yüzden, bir eleman olsa C ( x , x , R , e f l x ) herhangi biri için
refla:a=Aa, for any a:A
preflaa:Ax=a=yC(x,x,reflx) ; yani b a s e C : x : A C ( x , x , r e f l x ) (özel C için ) fonksiyonumuz varsa, f A fonksiyonumuzaşağıdaki gibi tanımlanabilir: f A ( x , y , p ) : = b a s e C ( x , x , p )x:A
baseC:x:AC(x,x,reflx)
CfA
fA(x,y,p):=baseC(x,x,p)
.

Aboneliklerden kurtulmak genel endüktif tanımlamaya yol açar.

Umarım yardımcı olur!


eEE


1
Belki biraz mantıklı olabilir veya en azından nedenini açıklamaya çalıştığım math.andrej.com/2013/08/28/the-elements-of-an-inductive-type adresini kontrol ederek mevcut sezgileriniz hakkında endişelenebilirsiniz. bir türün kapalı terimlerinin bir tür için var olduğunu düşünmek zararlıdır.
Andrej Bauer

2
refl

3

A×BA×B

pair : ABA×B
f A×Bpair

pairf:A×BCAB

f:ABC
fA×B
(ABC)(A×BC)
indA×B

f pair(a,b)ff

f(pair(a,b)) := f a b
indA×B f pair(a,b) := f a b
=

Böylece, verilen yapıcılarla endüktif tip için bir eliminator tanımının 2 adımda geldiğini görüyorsunuz:

  1. ind

  2. ind


=birx,y:birp:x=yCpx=y refl(z)z

f:Πx,y:bir,x=yC
f':Πz:bir,C
refl(z)C

ff'

f z z refl(z): =f' z

birxB=bir

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.