Tính hai mặt của các loại được định nghĩa như thế nào?


12

Trong các loại đệ quy của Wadler miễn phí! [1], ông đã chứng minh hai loại, X.(F(X)X)X và và tuyên bố chúng là kép . Cụ thể, ông chỉ ra rằng loại là không kép của cựu. Có vẻ như tính hai mặt trong câu hỏi ở đây khác với tính hai mặt của De Morgan trong logic. Tôi tự hỏi làm thế nào tính hai mặt của các loại được xác định, cụ thể cho ba loại được đề cập, tại sao thứ hai là kép của loại thứ nhất trong khi loại thứ hai thì không. Cảm ơn.X.(XF(X))×XX.X(XF(X))

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


Tôi sẽ không giúp đỡ nhiều ở đây, nhưng nghe có vẻ lý thuyết.
Anthony

Câu trả lời:


8

Trong bối cảnh này, tính đối ngẫu đề cập đến việc lấy điểm cố định ít nhất trong một trường hợp và điểm cố định lớn nhất trong trường hợp khác. Chúng ta nên cố gắng tìm hiểu những gì cảm giác G = X . ( X F ( X ) ) × X là "nhất" và giải pháp "vĩ đại" của phương trình đệ quy F ( X ) X .L=X.(F(X)X)XG=X.(XF(X))×XF(X)X

Trước hết, G thực sự là các điểm cố định (theo các giả định kỹ thuật nhất định hạn chế bản chất của F ) vì các bản đồ so sánh v : F ( L ) Lw : G F ( G ) được đưa ra bởi vLGFv:F(L)Lw:GF(G) w ( X , ( f , x ) ) = F ( λ y : X

vxXg=g(F(λh:L.hXg)x)
là các đẳng cấu. Lưu ý rằng chúng ta đã sử dụng thực tế rằng F là một functor, nghĩa là nó đơn điệu, khi chúng ta áp dụng nó cho các hàm.
w(X,(f,x))=F(λy:X.(X,(f,y)))(fx)
F

Giả sử là bất kỳ giải pháp cho F ( Y ) Y với một đẳng cấu trung gian u : F ( Y ) Y . Khi đó ta có các bản đồ chính tắc α : L Y  và  β : Y G được xác định bởi αYF(Y)Yu:F(Y)Y

α:LY and β:YG
β
αf=fYu
Do đó, Lnhấtbởi vì chúng tôi có thể ánh xạ từ nó đến bất kỳ giải pháp khác, và Glớn nhấtbởi vì chúng tôi có thể ánh xạ từ bất kỳ giải pháp khác với nó. Chúng ta có thể làm cho tất cả điều này chính xác hơn bằng cách nói về đại số ban đầu và than đá cuối cùng, nhưng tôi muốn câu trả lời của mình ngắn gọn và ngọt ngào, và dù sao thì cody cũng giải thích đại số.
βy=(Y,(u1,y)).
LG

Trong thực tế, các giải pháp tối thiểu là các kiểu dữ liệu háo hức và các giải pháp lớn nhất là các kiểu dữ liệu lười biếng . Ví dụ, nếu sau đó trong trường hợp đầu tiên chúng tôi nhận hữu hạn danh mục A 's và trong hữu hạn thứ hai và danh sách vô tận Một ' s.F(X)=1+A×XAA


Câu trả lời của tôi là thiếu bằng chứng cho thấy G là các điểm cố định (theo một số giả định về F , có thể vẫn chưa được nêu). Làm thế nào để tôi viết ra các bản đồ so sánh F ( L ) LG F ( G ) ? LGFF(L)LGF(G)
Andrej Bauer

Ok, tìm thấy bản đồ w với Coq. vw
Andrej Bauer

Có vẻ như có một ứng cử viên khác cho , cụ thể là w ( X , ( f , x ) ) = F ( λ y : Xw . Ai đó có thể giải thích những gì đang xảy ra? w(X,(f,x))=F(λy:X.(X,(f,x)))(fx)
Andrej Bauer

1
Tôi giả sử bạn đã chứng minh rằng đó w'là một đẳng cấu, nhưng nó có cung cấp cho bạn một đại số hợp lệ không? (Tôi đoán rằng nó nên, nhưng tôi có thể sai ...) Không giống như hình vuông sẽ đi lại.
CA McCann

Trong ghi chú của mình: homepages.inf.ed.ac.uk/wadler/ con / free-rectypes /,, Wadler đưa ra phiên bản đầu tiên. Tuy nhiên, ông viết nó hơi khác một chút: w (X, (f, x)) = F (mở ra X k) (fx). Điều này làm cho cấu trúc của đại số xuất hiện rõ ràng hơn, và gần như ngay lập tức đưa ra sự giao hoán của các hình thái corecursion thích hợp. Như camcann nói, tôi nghĩ rằng phiên bản khác của bạn không làm cho các hình vuông này đi lại.
cody

7

Câu trả lời có thể được hiểu một cách cụ thể thông qua lăng kính của F-algebras . Các đại diện phân loại của một loại đệ quy trong một thể loại C xấp xỉ có thể được xác định bằng một functor F : CC . Một sau đó hoạt động trong thể loại F -achebras vớiICF:CCF

  • như các đối tượng: các đối tượng của C cùng với một hình thái α : F ( A ) AAC
    α:F(A)A
  • như mũi tên: hình vuông

    F-algebra morphism

Bây giờ đối với là loại đệ quy được đại diện bởi F , tôi cần phải là người đầu tiên trong thể loại này: chúng ta cầnIFI

  1. Một hình thái in:F(I)I
  2. Đối với mỗi -đau khớp ( A , α ) một hình thái f o l d : I A làm cho hình vuông đi lại thích hợp.F(A,α)fold:IA

Bây giờ xác định . Nó là khá rõ ràng làm thế nào để xây dựng f o l d : chỉ cần lấy f o l d = λ i : Tôi . i A α : I A Building i n khó hơn một chút, Wadler giải thích nó, vì vậy tôi sẽ không thử. Tuy nhiên, xin lưu ý rằng nó yêu cầu F là mộtfunctorI=X.(F(X)X)Xfold

fold=λi:I.i A α:IA
inF, có thể được coi là một yêu cầu tích cực.

Bây giờ trong lý thuyết thể loại, chúng ta thường muốn xem xét tình huống trong đó tất cả các mũi tên được đảo ngược. Trong trường hợp này, với , chúng ta có thể xem xét danh mục của F- Thangebras vớiFF

  • Như các đối tượng: đối tượng của C cùng với một cấu xạ ω : Z F ( Z )ZC
    ω:ZF(Z)
  • Là mũi tên, hình vuông như trong trường hợp -đau khớp (nhưng với αβ đảo ngược).Fαβ

Bây giờ chúng tôi muốn kiểm tra đối tượng đầu cuối của thể loại này. Các yêu cầu hiện được đảo ngược:T

  1. Một hình thái out:TF(T)
  2. Đối với mỗi -coalgebra Z , một cấu xạ c o f o l d : Z T .FZcofold:ZT

Chung ta se lam như thê nao? Cũng như Wadler quy định, chúng ta lấy T=X.(XF(X))×X . Một cách tương tự so với trước đây, chúng tôi có xây dựng này sẽ không làm việc nếu chúng ta đã thay lấy T = X . X ( X

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

6

Theo kinh nghiệm của tôi, một tốt và cách hoạt động để hiểu tính hai mặt của các loại cho -calculi là bằng cách đi qua π -calculus.λπ

Khi bạn dịch (phân tách) các loại thành phép tính quy trình, tính hai mặt trở nên đơn giản: đầu vào là kép thành đầu ra và ngược lại . Không có (nhiều) nhiều hơn cho nhị nguyên.

Trong -calculus bạn có tính đối ngẫu đơn giản (và gần như đối xứng) giữa đầu vào và đầu ra. Giả sử bạn có một loại α = ( B o o l , tôi n t ) . Sau đó, α nói rằng một kênh có loại απα=(Bool,Int)αα tạo ra chính xác một đầu ra, mang giá trị boolean và số nguyên. Một quá trình sinh sống kiểu này tại kênh sẽ ¯ xf một l s e , 7 . Loại kép, mà chúng ta có thể viết ¯ αxx¯false,7α¯, sẽ diễn tả rằng một đầu vào xảy ra của một cặp trong đó v là một boolean và w là một số nguyên. Ta viết ¯ α( b o o l , i n t ) . Một quá trình sinh sống ¯ α tại x sẽ là c ( v , w ) .0 . (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))

Định lượng phổ quát có ý nghĩa gì ở cấp độ quá trình? Có một cách giải thích đơn giản: nếu dữ liệu được gõ bởi một biến loại, nó không thể được sử dụng làm chủ đề của đầu ra, chỉ một đối tượng. Vì vậy, chúng tôi không thể kiểm tra dữ liệu này, chúng tôi chỉ có thể truyền nó hoặc quên nó.

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

Lý thuyết về điều này đã được nghiên cứu chi tiết trong [1, 2, 3] và một số khác, khó tiếp cận công việc hơn và liên quan rất chính xác đến logic tuyến tính phân cực và khái niệm về tính đối ngẫu trong 4 .

Bây giờ nhiều bạn hỏi làm thế nào điều này liên quan đến gõ vào λλπλπλ

π

π

π

4 K. Honda và cộng sự, Một sự tương ứng chính xác giữa một phép tính pi được đánh máy và lưới bằng chứng phân cực .

5 R. Milner, Chức năng như các quá trình .


1
re: Quan điểm của bạn về số lượng cư dân loại ∀X. (X, (X) ↑). Có một sự tương tự của "định lý tự do" sau đó cho phép tính pi không? Nếu vậy, điều này được thảo luận ở đâu?
Đaminh Mulligan

1
Xin chào @DominicMulligan, vâng, có "định lý miễn phí" và chúng tôi đã nghiên cứu điều này một chút trong [1, 2]. Tôi nghĩ nhiều hơn có thể được nói theo hướng này.
Martin Berger

1
@MartinBerger: Bạn có thể sử dụng tham số để tìm ra khái niệm "đúng" của tương đương quy trình cho phép tính pi được gõ là gì không? Ví dụ, trong Hệ thống F, mối quan hệ logic tham số tương ứng với tương đương theo ngữ cảnh. Bằng cách tương tự, tôi sẽ mong đợi bất kỳ khái niệm nào về sự tương đương quá trình tương ứng với mối quan hệ logic tham số cho phép tính pi là đặc biệt thú vị.
Neel Krishnaswami

π

Các đặc tính dựa trên sự mô phỏng là hữu ích cho lý luận thực tế, bởi vì chúng không yêu cầu đóng cửa trong tất cả các bối cảnh.
Martin Berger
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.