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 ) ) × XX.(F(X)X)XX.(Xfa(X))×XX.X(Xfa(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.(Xfa(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:solfa(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 β:Ysol
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.solfa(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 : CC . Jeden następnie pracuje w kategorii F- algebry zICF:Cdofa

  • 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:jaZA

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 α:jaZA
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
    ω:Zfa(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:ZT.

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.(Xfa(X))×X

doofaolre=λz:Z.(Z,ω,z):ZT.
.T.=X.X(Xfa(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.