Teori domain memberikan teori komputabilitas yang menakjubkan dengan adanya tipe-tipe sederhana. Tetapi ketika polimorfisme parametrik ditambahkan, tampaknya tidak ada teori yang bagus yang menjelaskan apa yang terjadi dengan sebaik teori domain menjelaskan perhitungan dari tipe sederhana. Tentu saja saya tidak akan mengharapkan hal seperti itu ada untuk System-F karena tidak ada model teori set dari System-F ada. Bagaimana dengan pembatasan Sistem-F yang memiliki prediksi dan memiliki hierarki semesta? Apakah ini sudah dipelajari? Apakah ada teori domain bagus yang berlaku untuknya? Lebih jauh bagaimana dengan tipe dependen? Dapatkah teori domain entah bagaimana dicampur dengan yang lemah-groupoids untuk mencapai sesuatu?
8
Jawaban:
Ada banyak cara untuk memodelkan polimorfisme melalui teori domain, izinkan saya menjelaskan satu yang mudah dipahami, sehingga Anda dapat memikirkannya sendiri. Ini adalah "model PER".
Ambil model apa pun yang belum diketikλ -calculus, misalnya domain D seperti yang D→D adalah penarikan D (misalnya, ambil D seperti yang D≅N⊥×(D→D)) . MembiarkanΛ:D→(D→D) dan Γ:(D→D)→D menjadi pencabutan dan bagian, masing-masing.
Kami akan menafsirkan jenis sebagai hubungan ekivalensi parsial (PER) padaD . Ingatlah bahwa PER adalah hubungan yang simetris dan transitif, tetapi tidak harus refleksif. Untuk setiap jenisτ jadi kami menetapkan PER ∼τ . Pikirkanx∼τx sebagai "x adalah elemen dari τ "dan x∼τy sebagai "x dan y sama sejauh τ prihatin ".
Kita dapat memiliki beberapa tipe dasar (tetapi tidak perlu), misalnya jika kita memastikan ituN⊥ adalah subdomain dari D melalui penyematan ι:N→D maka kita dapat mendefinisikan ∼nat oleh
PER yang diberikan∼τ dan ∼σ , tentukan ruang fungsi PER ∼τ→σ oleh
Istilah-istilah tersebut ditafsirkan sebagai tidak diketikλ Istilah -kalkulus sebagai orang biasanya menafsirkannya D .
Inilah lucunya. Anda dapat menafsirkan polimorfisme sebagai persimpangan PER, yaitu:
Jika kita ingin rekursi dalam bahasa kita maka kita perlu memperhitungkan poin tetap. Satu kemungkinan adalah untuk membatasi PER untuk yang mengandung⊥D dan ditutup di bawah suprema rantai yang meningkat. Lebih tepatnya, ambil PERs saja≈ untuk itu
Kita sekarang bisa menafsirkanfixτ:(τ→τ)→τ dengan menerapkan teorema Kanster-Tarski tentang keberadaan titik tetap, seperti yang kita lakukan dalam teori domain biasa. Kali ini,∀X.X tidak kosong, karena mengandung justru ⊥D .
sumber
Roy Crole memberikan penjelasan yang bagus tentang bagaimana menggunakan teori domain untuk memodelkan tipe polimorfisme dalam bukunya Kategori untuk Jenis , khususnya di bagian 5.6.
sumber