Adalah ilusi bahwa aturan perhitungan "mendefinisikan" atau "membangun" objek yang mereka bicarakan. Anda benar mengamati bahwa persamaan untuk tidak "mendefinisikan" itu, tetapi gagal untuk mengamati bahwa hal yang sama juga berlaku dalam kasus lain. Mari kita perhatikan prinsip induksi untuk unit tipe 1 , yang tampaknya sangat "ditentukan". Menurut Bagian 1.5 dari buku Hott kita memiliki
i n d 1 : Π C : 1 → T y p e C ( ⋆ ) → Π x : 1 Pind=A1
dengan persamaan
i n d 1 ( C , c , ⋆ ) = c .
Apakah ini "menentukan" atau "membangun" i n d 1 dalam arti bahwa ia meninggalkan diragukan lagi seperti apa yang saya n d 1 "tidak"? Misalnya, atur C ( x ) = N dan a = 42 , dan pertimbangkan apa yang bisa kami katakan tentang
i n d 1 ( C , 42 ,
ind1:∏C:1→TypeC(⋆)→∏x:1P(x)
ind1(C,c,⋆)=c.
ind1ind1C(x)=Na=42
untuk ekspresi yang diberikan
e tipe
1 . Pikiran pertama Anda mungkin bahwa kita dapat mengurangi ini menjadi
42 karena "
⋆ adalah satu-satunya elemen
1 ". Tetapi untuk menjadi cukup tepat, persamaan untuk
i n d 1 hanya berlaku jika kita menunjukkan
e ≡ ⋆ , yang tidak mungkin bila
e adalah variabel, misalnya. Kita dapat mencoba untuk menggoyangkan keluar dari ini dan mengatakan bahwa kita hanya tertarik perhitungan dengan istilah tertutup, sehingga
e harus ditutup.
ind1(C,42,e)
e142⋆1ind1e≡⋆ee
Apakah tidak terjadi bahwa setiap jangka tertutup tipe 1 adalah judgmentally sama dengan ⋆ ? Itu sebenarnya tergantung pada detail yang tidak jelas dan bukti normalisasi yang rumit. Dalam kasus Hott jawabannya adalah "tidak" karena e bisa berisi contoh dari Univalence Aksioma, dan tidak jelas apa yang lakukan untuk hal itu (ini yang masalah terbuka di Hott).e1⋆e
Kita dapat menghindari masalah dengan univalance dengan mempertimbangkan versi teori tipe yang memang memiliki sifat yang baik sehingga setiap istilah tertutup tipe secara hukum sama dengan ⋆ . Dalam hal bahwa itu adalah adil untuk mengatakan bahwa kita tidak tahu bagaimana menghitung dengan i n d 1 , namun:1⋆saya dan d1
Hal yang sama akan berlaku untuk jenis identitas, karena setiap jangka tertutup jenis identitas akan judgmentally sama untuk beberapa , dan kemudian persamaan untuk i n d = A akan memberitahu kita bagaimana untuk menghitung.r e fl (a)saya dan d=SEBUAH
Hanya karena kita tahu bagaimana cara menghitung dengan istilah tertutup dari suatu jenis, itu tidak berarti kita benar-benar telah mendefinisikan apa pun karena ada lebih banyak jenis daripada istilah tertutupnya , seperti yang saya coba jelaskan sekali.
Sebagai contoh, ketik teori Martin-LOF (tanpa jenis identitas) dapat diartikan domain-teoritis sedemikian rupa yang berisi dua elemen ⊥ dan ⊤ , di mana ⊤ berkorespondensi untuk ⋆ dan ⊥ untuk non-terminasi. Sayangnya, karena tidak ada cara untuk menuliskan ekspresi non-terminating dalam teori tipe, ⊥ tidak dapat disebutkan namanya. Akibatnya, persamaan untuk i n d 1 tidak tidak memberitahu kita bagaimana untuk menghitung pada ⊥ (dua pilihan yang jelas menjadi "bersemangat" dan "malas").1⊥⊤⊤⋆⊥⊥saya dan d1⊥
Dalam istilah rekayasa perangkat lunak, saya akan mengatakan kami memiliki kebingungan antara spesifikasi dan implementasi . Aksioma HoTT untuk tipe identitas adalah spesifikasi . Persamaan tidak memberi tahu kita cara menghitung, atau bagaimana membangun i n d = C , melainkan Namun itu saya nsaya dan d=C( C,c,x,x,refl(x))≡c(x)ind=C adalah "diimplementasikan", kami mengharuskan itu memenuhi persamaan. Ini adalah pertanyaan terpisah apakah i n d = C dapat diperoleh secara konstruktif.ind=Cind=C
Terakhir, saya sedikit lelah dengan bagaimana Anda menggunakan kata "konstruktif". Sepertinya Anda berpikir bahwa "konstruktif" sama dengan "terdefinisi". Di bawah interpretasi itu, Oracle Henti adalah konstruktif, karena perilakunya ditentukan oleh persyaratan yang kami tetapkan padanya (yaitu bahwa output 1 atau 0 menurut apakah mesin yang diberikan berhenti). Prefek mungkin untuk menggambarkan objek yang hanya ada dalam pengaturan non-konstruktif. Sebaliknya, sangat mungkin untuk berbicara secara konstruktif tentang properti dan hal-hal lain yang sebenarnya tidak dapat dihitung. Inilah satu: hubungan didefinisikan oleh
H ( n , d )H⊆N×{0,1}
konstruktif, yaitu, tidak ada yang salah dengan definisi ini dari sudut pandang konstruktif. Kebetulan yang konstruktif satu tidak dapat menunjukkan bahwa H adalah relasi total, dan peta karakteristik χ H : N × { 0 , 1 } → P r o p tidak faktor tidak melalui b o o l
H(n,d)⟺(d=1⇒n-th machine halts)∧(d=0⇒n-th machine diverges)
HχH:N×{0,1}→Propb o o l, jadi kita tidak bisa "menghitung" nilainya.
Tambahan: Judul pertanyaan Anda adalah "Apakah induksi jalur konstruktif?" Setelah membersihkan perbedaan antara "konstruktif" dan "terdefinisi", kita dapat menjawab pertanyaan itu. Ya, induksi jalur diketahui konstruktif dalam kasus-kasus tertentu:
Jika kita membatasi untuk mengetik teori tanpa Univalence sehingga kita dapat menunjukkan normalisasi yang kuat, maka jalur induksi dan yang lainnya konstruktif karena ada algoritma yang melakukan prosedur normalisasi.
Ada model realisasi dari teori tipe, yang menjelaskan bagaimana setiap istilah tertutup dalam teori tipe sesuai dengan mesin Turing. Namun, model ini memuaskan Streicher's Axiom K, yang mengesampingkan Univalence.
Ada terjemahan dari teori tipe (lagi tanpa Univalence) ke teori himpunan konstruktif CZF. Sekali lagi, ini memvalidasi aksioma Streicher K.
Ada model groupoid di dalam model realisasi yang memungkinkan kita untuk menafsirkan teori tipe tanpa Streicher's K. Ini adalah karya pendahuluan oleh Steve Awodey dan saya sendiri.
Kita benar-benar perlu memilah status konstruktif dari Univalence.