Bagaimana dualitas tipe didefinisikan?

12

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 ) )X.(F(X)X)XX.(XF(X))×XX.X(XF(X))

[1] http://homepages.inf.ed.ac.uk/wadler/papers/free-rectypes/free-rectypes.txt

hari
sumber
Saya tidak akan banyak membantu di sini, tapi kedengarannya teori kategori.
Anthony

Jawaban:

8

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)XG=X.(XF(X))×XF(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 ) vLGFv:F(L)Lw:GF(G)w ( X , ( f , x ) ) = F ( λ y : X

vxXg=g(F(λh:L.hXg)x)
F
w(X,(f,x))=F(λy:X.(X,(f,y)))(fx)
F

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 αYF(Y)Yu:F(Y)Y

α:LY and β:YG
β
αf=fYu
L G
βy=(Y,(u1,y)).
LG

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×XAA

Andrej Bauer
sumber
Jawaban saya tidak ada bukti bahwa dan adalah poin tetap (berdasarkan beberapa asumsi tentang , yang mungkin tetap tidak dinyatakan). Bagaimana cara menuliskan peta perbandingan dan ? G F F ( L ) L G F ( G )LGFF(L)LGF(G)
Andrej Bauer
Ok, temukan peta dan dengan Coq. bvw
Andrej Bauer
Sepertinya ada kandidat lain untuk , yaitu . Adakah yang bisa menjelaskan apa yang sedang terjadi? w ( X , ( f , x ) ) = F ( λ y : Xww(X,(f,x))=F(λy:X.(X,(f,x)))(fx)
Andrej Bauer
1
Saya berasumsi Anda telah membuktikan bahwa itu 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.
CA McCann
Dalam catatannya: homepages.inf.ed.ac.uk/wadler/papers/free-rectypes/… , Wadler memberikan versi pertama. Namun ia menulisnya sedikit berbeda: w (X, (f, x)) = F (buka Xk) (fx). Hal ini membuat struktur batu bara tampak lebih jelas, dan hampir segera memberikan pergantian morfisme korosi yang sesuai. Seperti yang dikatakan camcann, saya pikir versi Anda yang lain tidak membuat kotak ini menjadi bolak-balik.
cody
7

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 : CC FICF:CCF

  • sebagai objek: objek dari bersama dengan morfisme C α : F ( A ) AAC
    α:F(A)A
  • sebagai panah: kotak

    Morfisme aljabar F

IFI

  1. in:F(I)I
  2. F(A,α)fold:IA

I=X.(F(X)X)Xfold

fold=λi:I.i A α:IA
inF, yang dapat dilihat sebagai persyaratan positif.

FF

  • ZC
    ω:ZF(Z)
  • Fαβ

T

  1. out:TF(T)
  2. FZcofold:ZT

T=X.(XF(X))×X

cofold=λz:Z.(Z,ω,z):ZT
T=X.X(XF(X))
cody
sumber
6

λπ

Ketika Anda menerjemahkan (mendekomposisi) jenis ke dalam kalkulus proses, dualitas menjadi sederhana: input ganda untuk output dan sebaliknya . Tidak ada (lebih banyak) dualitas.

πα=(Bool,Int)ααxx¯false,7α¯(v,w)vwα¯(bool,int)α¯xc(v,w).0

β=(int,(int))(v,w)vwβ¯=(int,(int))αα¯PαxQα¯xPQββ¯

X.(X,(X))(v,w)vXwXx

x(vw).w¯v
X.(X,(X))

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.

X.(X,(X))X.(X,(X))

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 .

Martin Berger
sumber
1
re: Maksud Anda tentang jumlah penghuni tipe ∀X. (X, (X) ↑) ↓. Apakah ada analogi "teorema bebas" untuk pi-kalkulus? Jika demikian, di mana ini dibahas?
Dominic Mulligan
1
Halo @DominicMulligan, ya ada "teorema gratis" dan kami menyelidiki sedikit dalam [1, 2]. Saya pikir lebih banyak yang bisa dikatakan ke arah ini.
Martin Berger
1
@ MartinBerger: Bisakah Anda menggunakan parametrik untuk mengetahui apa yang "benar" gagasan kesetaraan proses untuk kalkulus-diketik adalah Misalnya, dalam Sistem F hubungan logis parametrik sesuai dengan kesetaraan kontekstual. Dengan analogi, saya berharap gagasan apa pun tentang kesetaraan proses yang sesuai dengan hubungan logis parametrik untuk pi-kalkulus menjadi sangat menarik.
Neel Krishnaswami
π
Karakterisasi berbasis bisimulasi berguna untuk alasan praktis, karena mereka tidak memerlukan penutupan dalam semua konteks.
Martin Berger