Teori Domain dan Polimorfisme

8

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?

Jake
sumber
1
Saya bingung: ada model domain-teori dari yang belum diketik λ-calculus, yang secara intuitif adalah kalkulus yang diketik dengan tipe ααα. Ini, tentu saja, tidak memiliki model di set juga. Mengapa Anda berharap tidak ada model domain dari sistem F? Sudahkah Anda mencoba mencari secara online?
cody
Saya mengerti bahwa tidak ada model sistem F di mana fungsi ditafsirkan sebagai jenis fungsi dalam teori himpunan. Saya mengerti bahwa tidak ada "naif" set model teoretis dari kalkulus lambda yang diketik tetapi set model teoretis ada selama fungsi tersebut merupakan fungsi kontinu. Maka seperti fungsi real kontinu memiliki kardinalitas yang sama dengan real, demikian juga fungsi kontinu scott memiliki ukuran yang sama dengan domain (co) mereka. Saya mengerti ini adalah bagaimana masalah ukuran diselesaikan. Saya mengerti solusi seperti itu untuk tidak ada untuk sistem-F Namun.
Jake
Saya juga harus menambahkan bahwa saya mengerti teori domain untuk tetap menetapkan teori pada prinsipnya. Yaitu fungsi masih mengatur fungsi teoretis hanya saja Anda hanya menjadi perhatian dengan fungsi kontinu ketika mengartikan fungsi dalam kalkulus. Oleh karena itu pemahaman saya tampaknya mengesampingkan pemasangan Sistem-F ke dalam model teori domain. Mungkin salah satu pemahaman saya yang salah di sini.
Jake
3
Begitu ya, terima kasih atas klarifikasi Anda. Perlakuan yang paling "mirip-domain-seperti" dari sistem yang diketahui FI adalah Girard's "Coherent Spaces" yang perawatannya diuraikan di sini oleh Paul Taylor. Saya tidak tahu apakah ini adalah "teori bagus" sesuai permintaan Anda, tetapi jujur ​​saja, saya tidak benar-benar melihat teori domain sebagai yang secara umum bagus untuk semantik bahasa total ...
cody
1
@cody: tsk, tsk.
Andrej Bauer

Jawaban:

5

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 DD adalah penarikan D (misalnya, ambil D seperti yang DN×(DD)). MembiarkanΛ:D(DD) dan Γ:(DD)D menjadi pencabutan dan bagian, masing-masing.

Kami akan menafsirkan jenis sebagai hubungan ekivalensi parsial (PER) pada D. 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 itu N adalah subdomain dari D melalui penyematan ι:ND maka kita dapat mendefinisikan nat oleh

xnatynN.x=ι(n)=y.

PER yang diberikan τ dan σ, tentukan ruang fungsi PER τσ oleh

xτσyz,wD.zτwΛ(x)(z)σΛ(y)(w)

Istilah-istilah tersebut ditafsirkan sebagai tidak diketik λIstilah -kalkulus sebagai orang biasanya menafsirkannya D.

Inilah lucunya. Anda dapat menafsirkan polimorfisme sebagai persimpangan PER, yaitu:

xX.τ(X)yfor all PERs xτ()y.
Kami dapat menghitung PER sesuai dengan X.X: ini adalah persimpangan dari semua PER, tetapi itu akan menjadi PER kosong. MenghitungX.XXadalah latihan yang menarik. MenghitungX.XXX adalah latihan yang sulit (yang membuat saya sibuk selama seminggu ketika saya masih mahasiswa teori domain).

Jika kita ingin rekursi dalam bahasa kita maka kita perlu memperhitungkan poin tetap. Satu kemungkinan adalah untuk membatasi PER untuk yang mengandungDdan ditutup di bawah suprema rantai yang meningkat. Lebih tepatnya, ambil PERs saja untuk itu

  • DD, dan
  • jika x0x1x2 dan y0y1y2 meningkatkan rantai D seperti yang xiyi untuk semua i, kemudian supixisupiyi.

Kita sekarang bisa menafsirkan fixτ:(ττ)τ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.

Andrej Bauer
sumber
Ini jawaban luar biasa! Ini pada dasarnya memberikan alat yang sama dengan yang diberikan parametrik dan alat teori domain. Inilah yang saya cari. Nah, saya harus melakukan sesuatu akhir pekan ini sekarang.
Jake
Sebagai catatan, saya belajar hal ini dari Dana Scott. Saya cukup yakin John Reynolds tahu tentang model PER pada saat ia menemukan parametrik. Saya selalu berpikir bahwa parametrik berasal dari model PER, bagaimanapun.
Andrej Bauer
Dalam benak saya, dia adalah penasihat Anda. Apakah ini ditulis di mana saja atau ini adalah cerita rakyat?
Jake
Ada banyak hal yang ditulis tentang ini. Apa yang sedang Anda cari? Makalah bersejarah pertama (yang akan oleh Dana Scott), sebuah makalah klasik yang membuat segalanya benar-benar berjalan, sebuah buku teks?
Andrej Bauer
2
Buku teks Domains dan Lambda Calculi oleh Roberto Amadio dan Pierre-Louis Curien mencakup model PER dalam Bab 15, dan model PER Sistem F dalam 15.2.
Andrej Bauer
0

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.

Nathan BeDell
sumber
2
Dapatkah Anda setidaknya meringkas bagian itu untuk kepentingan orang-orang yang mungkin tidak memiliki buku itu? Satu atau dua paragraf yang memberikan gagasan utama akan banyak.
David Richerby