Jak definiuje się dualność typów?


12

W Wadler's Recursive Types za darmo! [1], zademonstrował dwa typy, i i twierdził, że są podwójne . W szczególności wskazał, że typ nie jest dualistą poprzedniej. Wydaje się, że dualność, o której tu mowa, różni się logicznie od dualności De Morgana. Zastanawiam się, w jaki sposób definiuje się dualność typów, szczególnie dla wymienionych trzech typów, dlaczego drugi jest podwójny z pierwszym, a trzeci nie. Dzięki.∃ X . ( X → F ( X ) ) × X∀X.(F(X)→X)→X∃X.(X→fa(X))×X∃X.X→(X→fa(X))

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


Nie będę tu zbytnio pomocny, ale to brzmi teoretycznie.
— Anthony

Odpowiedzi:


8

W tym kontekście dualność odnosi się do zajęcia najmniej stałego punktu w jednym przypadku i największego stałego punktu w drugim. Powinniśmy starać się zrozumieć, w jakim sensie i G = ∃ X . ( X → F ( X ) ) x X są "najmniej" i "największe" roztwory rekurencyjnych równania F ( x ) ≅ X .L.=∀X.(fa(X)→X)→Xsol=∃X.(X→fa(X))×Xfa(X)≅X

Po pierwsze, i G są rzeczywiście stałymi punktami (przy pewnych założeniach technicznych, które ograniczają naturę F ), ponieważ mapy porównawcze v : F ( L ) → L i w : G → F ( G ) podane przez vL.solfav:fa(L.)→L.w:sol→fa(sol) i W ( X , ( F , x ) ) = K ( λ Y : X

vxXsol=sol(fa(λh:L..hXsol)x)
to izomorfizmy. Zauważ, że użyliśmy faktu, że F jest funktorem, tj. Jest monotoniczny, kiedy zastosowaliśmy go do funkcji.
w(X,(fa,x))=fa(λy:X.(X,(fa,y)))(fax)
fa

Załóżmy, że jest rozwiązanie kwestii F ( Y ) ≅ Y z pośredniczącym izomorfizmie U : F ( Y ) → Y . Mamy zatem mapy kanoniczne α : L → Y  i  β : Y → G zdefiniowane przez αYfa(Y)≅Yu:fa(Y)→Y

α:L.→Y i β:Y→sol
i β
αfa=faYu
Dlatego L jestnajmniejsze,ponieważ możemy zmapować z niego do dowolnego innego rozwiązania, a G jestnajwiększe,ponieważ możemy zmapować z dowolnego innego rozwiązania. Możemy to wszystko uściślić, mówiąc o początkowych algebrach i końcowych węgielach, ale chcę, aby moja odpowiedź była krótka i słodka, a cody i tak wyjaśnił algebry.
βy=(Y,(u-1,y)).
L.sol

W praktyce najmniejszymi rozwiązaniami są chętne typy danych, a największymi rozwiązaniami są leniwe typy danych. Na przykład, jeśli czym w pierwszym przypadku mamy skończonych listy „S i w drugim skończony i nieskończony listy ” S.fa(X)=1+ZA×XZAZA


W mojej odpowiedzi brakuje dowodu, że i G są punktami stałymi (przy niektórych założeniach dotyczących F , które mogą pozostać nieokreślone). Jak zapisać mapy porównawcze F ( L ) → L i G → F ( G ) ? L.solfafa(L.)→L.sol→fa(sol)
— Andrej Bauer

Ok, znalazłem mapy i w z Coq. vw
— Andrej Bauer,

Wygląda na to, że istnieje inny kandydat na , a mianowicie w ′ ( X , ( f , x ) ) = F ( λ y : Xw . Czy ktoś może wyjaśnić, co się dzieje? w′(X,(fa,x))=fa(λy:X.(X,(fa,x)))(fax)
— Andrej Bauer,

1
Zakładam, że udowodniłeś, że w'jest to izomorfizm, ale czy daje ci prawidłową węgiel? (Zgaduję, że tak powinno być, ale mogę się mylić ...) Nie wygląda na to, żeby plac dojeżdżał.
— CA McCann

W swojej notatce: homepages.inf.ed.ac.uk/wadler/papers/free-rectypes /... Wadler podaje pierwszą wersję. Jednak pisze to nieco inaczej: w (X, (f, x)) = F (rozwiń X k) (fx). To sprawia, że ​​struktura węgielnicy wydaje się wyraźniejsza i prawie natychmiast daje komutację odpowiednich morfizmów korektury. Jak mówi camcann, myślę, że twoja inna wersja nie powoduje, że te kwadraty dojeżdżają do pracy.
— cody

7

Odpowiedź można zrozumieć kategorycznie przez soczewki F-algebry . Kategoryczny reprezentacją rekurencyjnego typu w kategorii C, można z grubsza określić za pomocą funktor F : C → C . Jeden następnie pracuje w kategorii F- algebry zICF:C→dofa

  • jako obiekty: obiekty z C wraz z morfizmem α : F ( A ) → AZAdo
    α:fa(ZA)→ZA
  • jako strzałki: kwadraty

    Morfizm algebry F.

Teraz aby stać się typem rekurencyjnym reprezentowanym przez F , muszę być początkowy w tej kategorii: potrzebujemyjafaja

  1. Morfizmem jan:fa(ja)→ja
  2. Dla każdego -algebrze ( A , α ) morfizmem f O l d : I → sprawia, że odpowiedni kwadratowy dojazdy.fa(ZA,α)faolre:ja→ZA

Teraz zdefiniować . Jest całkiem jasne, jak zbudować f o, l D : wystarczy wziąć f o, l D = λ I : I . I α : I → budynku i n jest nieco bardziej skomplikowane, Wadler wyjaśnia, więc nie będę próbować. Zauważ jednak, że wymaga to faktu, że F jest funktoremja=∀X.(fa(X)→X)→Xfaolre

faolre=λja:ja.ja ZA α:ja→ZA
janfa, co można uznać za wymóg dodatni.

Teraz w teorii kategorii często chcemy wziąć pod uwagę sytuację, w której wszystkie strzałki są odwrócone. W tym przypadku, biorąc pod uwagę , możemy rozważyć kategorię F- węglowy zfafa

  • Jako obiektów: obiekty o C wraz z morfizmem Ohm : Z → K ( Z )Zdo
    ω:Z→fa(Z)
  • Jako strzałki kwadraty jak w przypadku algebry (ale z odwróconym α i β ).faαβ

Teraz chcemy zbadać obiekt końcowy tej kategorii. Wymagania są teraz odwrócone:T.

  1. Morfizmem out:T.→fa(T.)
  2. Dla każdego -coalgebra Z , morfizmem c O M O L d : Z → T .faZdoofaolre:Z→T.

Jak to robimy? A także określa Wadler bierzemy . W podobny sposób, niż wcześniej, mają c o, f O l d = X Ż : Z . ( Z , ω , oo ) : Z → T Ta konstrukcja nie będzie pracował, gdybyśmy zamiast podjąć T = ∃ X . X → ( XT.=∃X.(X→fa(X))×X

doofaolre=λz:Z.(Z,ω,z):Z→T.
.T.=∃X.X→(X→fa(X))

6

Z mojego doświadczenia wynika , że dobrym i operacyjnym sposobem na zrozumienie dualności typów dla calculi jest przejście przez π- calculus.λπ

Kiedy tłumaczysz (rozkładasz) typy na rachunek procesowy, dualność staje się prosta: dane wejściowe są podwójne do danych wyjściowych i odwrotnie . W dualności nie ma (dużo) więcej.

πα=(bool,jant)↑ααxx¯⟨false,7⟩α¯(v,w)vwα¯(bool,int)↓α¯xc(v,w).0

β=(int,(int)↑)↓(v,w)vwβ¯=(jant,(jant)↓)↑αα¯P.αxQα¯xP.Qββ¯

∀X.(X,(X)↑)↓(v,w)vXwXx

x(vw).w¯v
∀X.(X,(X)↑)↓

Co oznacza uniwersalna kwantyfikacja na poziomie procesu? Istnieje prosta interpretacja: jeśli dane są wpisywane przez zmienną typu, nie mogą być użyte jako przedmiot wyniku, tylko obiekt. Nie możemy więc sprawdzać tych danych, możemy je tylko przekazać lub zapomnieć.

∀X.(X,(X)↑)↓∃X.(X,(X)↓)↑

Teorię tę opracowano bardziej szczegółowo w [1, 2, 3] i niektórych innych, trudniej dostępnych pracach, i bardzo precyzyjnie dotyczyły spolaryzowanej logiki liniowej i jej pojęcia dualności w 4 .

λλπλπλ

π

π

π

4 K. Honda i in., Dokładna zgodność między typowanym pi-rachunek a spolaryzowanymi siatkami próbnymi .

5 R. Milner, Funkcje jako procesy .


1
re: Twój punkt na temat liczby mieszkańców typu ∀X. (X, (X) ↑) ↓. Czy istnieje zatem analog „wolnych twierdzeń” dla rachunku pi? Jeśli tak, to gdzie to jest omawiane?
— Dominic Mulligan

1
Cześć @DominicMulligan, tak, istnieją „bezpłatne twierdzenia” i zbadaliśmy to trochę w [1, 2]. Myślę, że w tym kierunku można by powiedzieć znacznie więcej.
— Martin Berger

1
@MartinBerger: Czy możesz użyć parametryczności, aby dowiedzieć się, jakie jest „właściwe” pojęcie równoważności procesu dla rachunku typu pi? Np. W systemie F parametryczna logiczna relacja odpowiada kontekstowej równoważności. Analogicznie oczekiwałbym, że każde pojęcie równoważności procesu odpowiadające parametrycznej logicznej relacji dla rachunku pi będzie szczególnie interesujące.
— Neel Krishnaswami

π

Charakteryzacje oparte na bisimulacji są przydatne do praktycznego uzasadnienia, ponieważ nie wymagają zamknięcia we wszystkich kontekstach.
— Martin Berger,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.