Come viene definita la dualità dei tipi?


12

Nei tipi ricorsivi di Wadler gratis! [1], ha dimostrato due tipi, e X . ( X F ( X ) ) × X e ha affermato che sono doppie . In particolare, ha sottolineato che il tipo X . X ( X F ( X ) ) non lo èX.(F(X)X)XX.(XF(X))×XX.X(XF(X))il doppio del primo. Sembra che la dualità in questione qui sia diversa dalla dualità di De Morgan nella logica. Mi chiedo come sia definita la dualità dei tipi, specificatamente per i tre tipi citati, perché il secondo è doppio del primo mentre il terzo no. Grazie.

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


Non sarò di grande aiuto qui, ma sembra teorico di categoria.
Anthony,

Risposte:


8

In questo contesto, la dualità si riferisce al prendere il punto minimo fisso in un caso e il massimo punto fisso nell'altro. Dobbiamo cercare di capire in che senso e G = X . ( X F ( X ) ) × X sono i "meno" e "più grandi" soluzioni dell'equazione ricorsiva F ( X ) X .L=X.(F(X)X)XG=X.(XF(X))×XF(X)X

Prima di tutto, e G sono effettivamente punti fissi (in base a determinati presupposti tecnici che limitano la natura di F ) perché le mappe di confronto v : F ( L ) L e w : G F ( G ) fornite da vLGFv:F(L)Lw:GF(G) e w ( X , ( f , x ) ) = F ( λ y : X

vxXg=g(F(λh:L.hXg)x)
sono isomorfismi. Si noti che abbiamo usato il fatto che F è un funzione, ovvero è monotono, quando l'abbiamo applicato alle funzioni.
w(X,(f,x))=F(λy:X.(X,(f,y)))(fx)
F

Supponiamo che è un qualsiasi soluzione di F ( Y ) Y con un isomorfismo mediazione u : F ( Y ) Y . Quindi abbiamo mappe canoniche α : L Y  e  β : Y G definite da αYF(Y)Yu:F(Y)Y

α:LY and β:YG
e β
αf=fYu
Pertanto, L è ilminimoperché possiamo mappare da esso a qualsiasi altra soluzione e G èmaggioreperché possiamo mappare da qualsiasi altra soluzione ad esso. Potremmo rendere tutto ciò più preciso parlando di algebre iniziali e di coalgebre finali, ma voglio che la mia risposta sia breve e dolce, e il codice ha comunque spiegato le algebre.
βy=(Y,(u1,y)).
LG

F(X)=1+A×XAA


LGFF(L)LGF(G)

vw

ww(X,(f,x))=F(λy:X.(X,(f,x)))(fx)

1
Presumo che tu abbia dimostrato che si w'tratta di un isomorfismo, ma ti dà una coalgebra valida? (Immagino che dovrebbe, ma potrei sbagliarmi ...) Non sembra che la piazza sia commutata.
CA McCann,

Nella sua nota: homepages.inf.ed.ac.uk/wadler/papers/free-rectypes/… , Wadler presenta la prima versione. Tuttavia lo scrive in modo leggermente diverso: w (X, (f, x)) = F (spiegazione X k) (fx). Questo fa apparire la struttura della coalgebra in modo più chiaro e quasi immediatamente dà la commutazione dei morfismi di corecursione appropriati. Come dice camcann, penso che l'altra tua versione non faccia commutare questi quadrati.
cody

7

ICF:CCF

  • AC
    α:F(A)A
  • come frecce: quadrati

    Morfismo dell'algebra 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, che può essere visto come un requisito di positività.

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))

6

λπ

Quando traduci (decomponi) i tipi in calcolo del processo, la dualità diventa semplice: l' input è doppio all'output e viceversa . Non c'è (molto) di più nella dualità.

πα=(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))

Cosa significa la quantificazione universale a livello di processo? C'è un'interpretazione semplice: se i dati sono digitati da una variabile di tipo, non possono essere usati come oggetto di un output, ma solo un oggetto. Quindi non possiamo ispezionare questi dati, possiamo solo trasmetterli o dimenticarli.

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

La teoria di questo è stata elaborata in dettaglio in [1, 2, 3] e in alcuni altri, più difficili da accedere al lavoro, e collegati in modo molto preciso alla logica lineare polarizzata e alla sua nozione di dualità in 4 .

λλπλπλ

π

π

π

4 K. Honda et al., Una corrispondenza esatta tra un pi-calculus tipizzato e reti di prova polarizzate .

5 R. Milner, funziona come un processo .


1
ri: Il tuo punto sul numero di abitanti di tipo ∀X. (X, (X) ↑) ↓. Esiste un analogo di "teoremi liberi" per il pi-calcolo? In tal caso, di cosa si discute?
Dominic Mulligan,

1
Ciao @DominicMulligan, sì, ci sono "teoremi gratuiti" e abbiamo studiato un po 'questo in [1, 2]. Penso che si possa dire molto di più in questa direzione.
Martin Berger,

1
@MartinBerger: puoi usare la parametricità per capire qual è la nozione "giusta" di equivalenza di processo per pi-calculus tipizzato? Ad esempio, nel Sistema F la relazione logica parametrica corrisponde all'equivalenza contestuale. Per analogia, mi aspetterei che qualsiasi nozione di equivalenza di processo corrisponda alla relazione logica parametrica per pi-calcolo sia particolarmente interessante.
Neel Krishnaswami,

π

Le caratterizzazioni basate sulla bisimulazione sono utili per il ragionamento pratico, poiché non richiedono la chiusura in tutti i contesti.
Martin Berger,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.