Saya membaca buku HoTT dan mengalami kesulitan dengan induksi jalur.
Ketika saya melihat jenis di bagian 1.12.1 : saya tidak punya masalah memahami apa artinya (saya baru saja menulis jenis dari memori, untuk memeriksa itu).
Apa yang saya punya masalah adalah pernyataan selanjutnya:
kesan pertama saya adalah bahwa ekspresi terakhir ini tidak mendefinisikan fungsi yang dihasilkan
tetapi hanya menyatakannya properti .
Itu berbeda dengan contoh sebelumnya dari prinsip-prinsip induksi , atau - ada yang mendefinisikan persamaan untuk unsur-unsur - kita benar-benar tahu bagaimana membangun fungsi yang dihasilkan, diberikan tempat. Yang sesuai dengan "konstruktif" teori tipe yang diiklankan di seluruh bab ini.
Kembali ke , saya curiga dengan fakta bahwa (sepertinya) itu tidak didefinisikan. Menyatakan bahwa elemen hanya ada sepertinya tidak selaras dengan sisa bab ini. Dan memang, bagian 1.12.1 tampaknya menekankan bahwa kesan saya salah dan kita sebenarnya telah mendefinisikannya
... yang fungsi didefinisikan oleh
jalur induksi dari , yang juga
memenuhi ...
Itu membuat saya benar-benar bingung, tetapi saya merasa bahwa poin ini sangat penting untuk semua perkembangan selanjutnya. Jadi mana dari dua bacaan untuk harus saya ikuti? Atau, mungkin, saya kehilangan beberapa kehalusan penting dan jawabannya adalah "tidak"?
Jawaban:
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=A 1
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 ,
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).e 1 ⋆ 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=C ind=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
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.
sumber
Saya bukan orang HoTT, tapi saya akan memasukkan dua sen saya.
Misalkan kita ingin membuat fungsi Bagaimana kita melakukan ini? Nah, misalkan kita diberi x , y : A dan bukti kesetaraannya p : x = A y . Karena saya tidak tahu apa-apa tentang tipe A yang sewenang-wenang , saya tidak tahu apa-apa tentang `struktur ' x , y
Menyingkirkan langganan mengarah ke definisi induktif umum.
Semoga itu bisa membantu!
sumber
Jadi Anda melihat bahwa definisi eliminator untuk tipe induktif dengan konstruktor yang diberikan datang dalam 2 langkah:
sumber