Dalam Jenis Rekursif Wadler Gratis! [1], ia mendemonstrasikan dua jenis, dan , dan mengklaim keduanya ganda . Secara khusus, ia menunjukkan bahwa tipe adalah tidak dual mantan. Tampaknya dualitas yang dimaksud di sini berbeda dengan dualitas De Morgan dalam hal logika. Saya bertanya-tanya bagaimana dualitas jenis didefinisikan, khususnya untuk tiga jenis yang disebutkan, mengapa yang kedua adalah ganda dari yang pertama sedangkan yang ketiga tidak. Terima kasih.∃ X . ( X → F ( X ) ) × X ∃ X . X → ( X → F ( X ) )
[1] http://homepages.inf.ed.ac.uk/wadler/papers/free-rectypes/free-rectypes.txt
lo.logic
type-theory
hari
sumber
sumber
Jawaban:
Dalam konteks ini, dualitas mengacu pada pengambilan titik paling tidak tetap dalam satu kasus dan titik tetap terbesar dalam yang lain. Kita harus mencoba memahami dalam arti dan adalah "sedikit" dan "terbesar" solusi rekursif persamaan .G = ∃ X . ( X → F ( X ) ) × X F ( X ) ≅ XL = ∀ X. ( F( X) → X) → X G = ∃ X. ( X→ F( X) ) × X F( X) ≅X
Pertama-tama, dan memang titik tetap (berdasarkan asumsi teknis tertentu yang membatasi sifat ) karena peta perbandingan dan diberikan oleh dan adalah isomorfisma. Perhatikan bahwa kami menggunakan fakta bahwa adalah functor, yaitu, itu adalah monoton, ketika kami menerapkannya pada fungsi.G F v : F ( L ) → L w : G → F ( G ) vL G F v : F( L ) → L w : G → F( G ) w ( X , ( f , x ) ) = F ( λ y : X
Misalkan adalah solusi untuk dengan isomorfisma mediasi . Kemudian kita memiliki peta kanonik didefinisikan oleh dan Oleh karena itu, adalah setidaknya karena kita dapat memetakan dari itu untuk solusi lain, dan adalah terbesar karena kita dapat memetakan dari solusi lain untuk itu. Kita bisa membuat semua ini lebih tepat dengan berbicara tentang aljabar awal dan akhir batu bara, tetapi saya ingin jawaban saya pendek dan manis, dan bagaimanapun juga menjelaskan aljabar.F ( Y ) ≅ Y u : F ( Y ) → Y α : L → Y dan β : Y → G αY F( Y) ≅Y u:F(Y)→Y
Dalam praktiknya, solusi yang paling tidak adalah tipe data yang bersemangat dan solusi terbaik adalah tipe data yang malas . Sebagai contoh, jika maka dalam kasus pertama kita mendapatkan daftar berhingga dan dalam daftar terbatas dan tak terhingga kedua .A AF(X)=1+A×X A A
sumber
w'
adalah isomorfisme, tetapi apakah itu memberikan Anda sebuah bilangan bulat yang valid? (Kurasa memang seharusnya begitu, tapi aku bisa saja salah ...) Sepertinya alun-alun tidak akan bolak-balik.Jawabannya dapat dipahami secara kategoris melalui lensa F-algebras . Representasi kategoris dari tipe rekursif dalam kategori secara kasar dapat ditentukan menggunakan functor . Satu kemudian bekerja di kategori algabar denganC F : C → C FI C F:C→C F
sebagai panah: kotak
sumber
Ketika Anda menerjemahkan (mendekomposisi) jenis ke dalam kalkulus proses, dualitas menjadi sederhana: input ganda untuk output dan sebaliknya . Tidak ada (lebih banyak) dualitas.
Apa arti kuantifikasi universal pada tingkat proses? Ada interpretasi langsung: jika data diketik oleh tipe-variabel, itu tidak dapat digunakan sebagai subjek dari output, hanya objek. Jadi kami tidak dapat memeriksa data ini, kami hanya dapat meneruskannya, atau melupakannya.
Teori ini telah dikerjakan secara rinci dalam [1, 2, 3] dan beberapa lainnya, lebih sulit untuk mengakses pekerjaan, dan terkait sangat tepat dengan logika linier terpolarisasi dan gagasan dualitas dalam 4 .
4 K. Honda et al., Korespondensi yang tepat antara pi-kalkulus yang diketik dan jaring bukti terpolarisasi .
5 R. Milner, Berfungsi sebagai Proses .
sumber