Apa itu induksi-induksi ?
Sumber daya yang saya temukan adalah:
- buku HoTT , di akhir bab 5.7.
- Artikel nLab
- sebuah makalah yang disebut definisi induktif-induktif
- posting blog ini juga menyebutkan tipe induktif-induktif
Dua referensi pertama terlalu singkat untuk saya, dan dua yang terakhir terlalu teknis. Adakah yang bisa menjelaskannya dalam istilah awam? Akan lebih baik jika ada kode Agda.
Jawaban:
Tambahan 2016-10-03: Saya mencampur induksi-induksi dan rekursi-induksi (bukan pertama kali saya melakukan itu!). Saya minta maaf atas kekacauan ini. Saya memperbarui jawaban untuk mencakup keduanya.
Saya menemukan penjelasan dalam makalah Forsberg & Setzer A axiomatisation terbatas definisi induktif-induktif menerangi.
Induksi-rekursi
Definisi induktif-rekursif adalah definisi di mana kami mendefinisikan tipe dan tipe keluarga secara bersamaan dengan cara khusus:SEBUAH B:A→Type
Tanpa persyaratan ketiga, pertama kita bisa mendefinisikan dan kemudian secara terpisah .A B
Ini contoh bayi. Tentukan induktif untuk memiliki konstruktor berikut:A
Tipe keluarga didefinisikan olehB
Jadi, apa yang ada di ? Pertama-tama kita memiliki elemen Karena itu, ada tipe yang didefinisikan sebagai . Oleh karena itu, kita dapat membentuk dua elemen baru dan di . Sekarang kita memiliki , jadi kita juga dapat membentuk untuk setiap elemen dan Kita bisa terus seperti ini . Tahap selanjutnya adalah sejak ituA a:A. B(a) bool ℓ(a,false) ℓ(a,true) A B(ℓ(a,false))=B(ℓ(a,true))=nat n:nat ℓ(ℓ(a,false),n):A ℓ(ℓ(a,true),n):A B(ℓ(ℓ(a,true),n))=nat
ada untuk setiap elemen
dan elemen
Kita dapat terus berjalan. Sedikit pemikiran mengungkapkan bahwa kurang lebih adalah dua salinan daftar bilangan asli, berbagi daftar kosong yang sama. Saya akan meninggalkannya sebagai latihan untuk mencari tahu mengapa.m:nat ℓ(ℓ(ℓ(a,true),n),m):A ℓ(ℓ(ℓ(a,false),n),m):A A
Induksi-induksi
Definisi induktif-induktif juga mendefinisikan tipe dan secara bersamaan tipe keluarga :A B:A→Type
Penting untuk memahami perbedaan antara induksi-rekursi dan induksi-induksi. Dalam induksi-rekursi kita mendefinisikan dengan menyediakan persamaan dari bentuk mana adalah konstruktor untuk . Dalam definisi induktif-induktif kita mendefinisikan dengan menyediakan konstruktor untuk membentuk unsur-unsur .B B(c(…))=⋯ c(…) A B B
Mari kita merumuskan kembali contoh kita sebelumnya sebagai induksi-induksi. Pertama-tama kita mendapatkan tpye diberikan secara induktif :A
Tipe keluarga didefinisikan oleh konstruktor berikut:B
Seperti yang Anda lihat, kami memberikan aturan untuk menghasilkan elemen yang sama dengan mengatakan bahwa adalah (isomoprhic) boolean, dan adalah (isomorfik ke) bilangan alami .B B(a) B(ℓ(x,y))
sumber