To złudzenie, że reguły obliczeniowe „definiują” lub „konstruują” obiekty, o których mówią. Prawidłowo zauważyłeś, że równanie dla nie „go definiuje”, ale nie zauważyłeś, że to samo dotyczy również innych przypadków. Rozważmy zasadę indukcji dla jednostki typu , która wydaje się szczególnie wyraźnie „określona”. Zgodnie z rozdziałem 1.5 książki HoTT mamy
z równanie
Czy to „definiuje” czy „konstruuje” w tym sensie, że nie pozostawia wątpliwości, co „robi”? Na przykład ustaw 1 i n d 1 : ∏ C : 1 → T y p e C(⋆)→ ∏ x : 1 P(x) i n d 1 (C,c,⋆)=c. i n d 1 i n d 1 C(x)= Nind=A1
ind1:∏C:1→TypeC(⋆)→∏x:1P(x)
ind1(C,c,⋆)=c.
ind1ind1C(x)=N i i zastanów się, co moglibyśmy powiedzieć o
i n d 1 ( C , 42 , e ) ea=42ind1(C,42,e)
etypu . Twoja pierwsza myśl może być taka, że możemy zmniejszyć to do ponieważ „ jest jedynym elementem ”. Aby być bardziej precyzyjnym, równanie dla ma zastosowanie tylko wtedy, gdy pokażemy
42 ⋆ 1 i n d 1 e ≡ ⋆142⋆1ind1e≡⋆ , co jest niemożliwe , na przykład, gdy jest zmienną. Możemy próbować poruszać się z tego i powiedzieć, że jesteśmy zainteresowani tylko w obliczeniach z zamkniętymi warunkach, tak powinny być zamknięte.
eee
Czy nie jest tak, że każdy zamknięty termin typu jest w sensie sądowym równy1 ⋆e1⋆ ? To zależy od nieprzyjemnych szczegółów i skomplikowanych dowodów normalizacji. W przypadku HoTT odpowiedź brzmi „nie”, ponieważ mogą zawierać instancje aksjomatu Univalence, i nie jest jasne, co z tym zrobić (jest to otwarty problem w HoTT).e
Możemy obejść problemy z univalance uznając wersję typu teorii, która robi dobre właściwości, tak aby każdy zamknięty określenie typu jest judgmentally równa . W takim przypadku można powiedzieć, że tak⋆1⋆ wiem jak obliczyć z , ale:ind1
To samo dotyczy typu tożsamości, ponieważ każdy zamknięty termin typu tożsamości będzie sądowo równy pewnym , a więc równanie dlai n d = Arefl(a)ind=A będzie stwierdzić nas jak obliczyć.
Tylko dlatego, że wiemy, jak obliczyć z zamkniętymi terminami typu, nie oznacza to, że faktycznie coś zdefiniowaliśmy, ponieważ istnieje więcej niż typ zamknięty , jak próbowałem kiedyś wyjaśnić.
Na przykład teorię typów Martina-Löfa (bez typów tożsamości) można interpretować teoretycznie w domenie w taki sposób, że zawiera dwa elementy i , gdzie odpowiada a nieterminacji. Niestety, ponieważ w teorii typów nie ma sposobu, aby zapisać wyrażenie nie kończące się, nie można nazwać . W związku z tym, równanie ma nie⊥ ⊤ ⊤ ⋆ ⊥ ⊥ i n d 1 ⊥1⊥⊤⊤⋆⊥⊥ind1 mówią nam, jak obliczyć na (dwa oczywiste wybory są „chętnie” i „leniwie”).⊥
Pod względem inżynierii oprogramowania powiedziałbym, że mamy pomieszanie specyfikacji i implementacji . Aksjomaty HoTT dla typów tożsamości są specyfikacją . Równanie nie mówi nam, jak obliczyć, ani jak zbudować , ale raczej, że jednak jest „zaimplementowany”, wymagamy, aby spełniał równanie. Osobnym pytaniem jest, czy taki można uzyskać w konstruktywny sposób. i n d = C i n d = C i n d = Cind=C(C,c,x,x,refl(x))≡c(x)ind=Cind=Cind=C
Wreszcie jestem trochę zmęczony tym, jak używasz słowa „konstruktywny”. Wygląda na to, że uważasz, że „konstruktywny” jest taki sam jak „zdefiniowany”. Zgodnie z tą interpretacją wyrocznia Halting jest konstruktywna, ponieważ jej zachowanie jest określone przez nałożony na nią wymóg (mianowicie, że generuje 1 lub 0 w zależności od tego, czy dana maszyna zatrzymuje się). Idealnie możliwe jest opisywanie obiektów, które istnieją tylko w niekonstruktywnym otoczeniu. I odwrotnie, można całkowicie konstruktywnie mówić o właściwościach i innych rzeczach, których w rzeczywistości nie można obliczyć. Oto jedna: relacja
jest konstruktywna, tzn. Nie ma nic złego w tej definicji z konstruktywnego punktu widzenia. Tak się składa, że konstruktywnie nie można wykazać, że jest relacją całkowitą,H ( n , d )H⊆N×{0,1} zdefiniowana przez
H χ H : N × { 0 , 1 } → P r o p b o o l
H(n,d)⟺(d=1⇒n-th machine halts)∧(d=0⇒n-th machine diverges)
HχH:N×{0,1}→Prop nie uwzględnia przez , więc nie możemy „obliczyć” jego wartości.
bool
Uzupełnienie: Tytuł twojego pytania brzmi: „Czy indukcja ścieżki jest konstruktywna?” Po wyjaśnieniu różnicy między „konstruktywnym” a „zdefiniowanym” możemy odpowiedzieć na pytanie. Tak, wiadomo, że indukcja ścieżki jest konstruktywna w niektórych przypadkach:
Jeśli ograniczymy się do teorii typów bez Jedności, abyśmy mogli wykazać silną normalizację, wówczas indukcja ścieżki i wszystko inne jest konstruktywne, ponieważ istnieją algorytmy, które wykonują procedurę normalizacji.
Istnieją modele wykonalności teorii typów, które wyjaśniają, w jaki sposób każdy termin zamknięty w teorii typów odpowiada maszynie Turinga. Jednak te modele spełniają Axiom K Streichera, co wyklucza Univalence.
Istnieje tłumaczenie teorii typów (ponownie bez Univalence) na konstruktywną teorię zbiorów CZF. Po raz kolejny potwierdza to aksjomat K. Streichera
W modelach wykonalności znajduje się model grupoidalny, który pozwala nam interpretować teorię typów bez K. Streichera. To wstępna praca Steve'a Awodeya i mnie.
Naprawdę musimy ustalić konstruktywny status Univalence.