¿Cómo se define la dualidad de tipos?

12

¡En los tipos recursivos de Wadler gratis! [1], demostró dos tipos, y X . ( X F ( X ) ) × X , y afirmó que son duales . En particular, señaló que el tipo X . X ( X F ( X ) ) no esX.(F(X)X)XX.(XF(X))×XX.X(XF(X))El dual de los primeros. Parece que la dualidad en cuestión aquí es diferente de la dualidad de De Morgan en lógica. Me pregunto cómo se define la dualidad de tipos, específicamente para los tres tipos mencionados, por qué el segundo es dual del primero mientras que el tercero no. Gracias.

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

día
fuente
No voy a ser de mucha ayuda aquí, pero parece una categoría teórica.
Anthony

Respuestas:

8

En este contexto, la dualidad se refiere a tomar el punto fijo menos en un caso y el punto fijo más grande en el otro. Debemos tratar de comprender en qué sentido y G = X . ( X F ( X ) ) × X son los y soluciones "menos" "grandes" de la ecuación recursiva F ( X ) X .L=X.(F(X)X)XG=X.(XF(X))×XF(X)X

Primero de todo, y G son de hecho puntos fijos (bajo ciertos supuestos técnicos que limitan la naturaleza de F ), porque la comparación mapas v : F ( L ) L y W : G F ( G ) dadas por vLGFv:F(L)Lw:GF(G) y w ( X , ( f , x ) ) = F ( λ y : X

vxXg=g(F(λh:L.hXg)x)
son isomorfismos. Tenga en cuenta que utilizamos el hecho de que F es un functor, es decir, es monótono, cuando lo aplicamos a las funciones.
w(X,(f,x))=F(λy:X.(X,(f,y)))(fx)
F

Supongamos que es cualquier solución a F ( Y ) Y con un isomorfismo mediación u : F ( Y ) Y . Luego tenemos mapas canónicos α : L Y  y  β : Y G definidos por αYF(Y)Yu:F(Y)Y

α:LY and β:YG
y β
αf=fYu
Por lo tanto, L esmenorporque podemos asignarlo desde cualquier otra solución, y G esmayorporque podemos asignar desde cualquier otra solución. Podríamos hacer todo esto más preciso hablando de álgebras iniciales y finales de coalgebras, pero quiero que mi respuesta sea breve y dulce, y Cody explicó las álgebras de todos modos.
βy=(Y,(u1,y)).
LG

F(X)=1+A×XAA

Andrej Bauer
fuente
LGFF(L)LGF(G)
vw
ww(X,(f,x))=F(λy:X.(X,(f,x)))(fx)
1
Supongo que probaste que w'es un isomorfismo, pero ¿te da un coalgebra válido? (Supongo que debería hacerlo, pero podría estar equivocado ...) No parece que la plaza viaje.
CA McCann
En su nota: homepages.inf.ed.ac.uk/wadler/papers/free-rectypes/… , Wadler ofrece la primera versión. Sin embargo, lo escribe un poco diferente: w (X, (f, x)) = F (desplegar X k) (fx). Esto hace que la estructura de la coalgebra parezca más clara, y casi de inmediato proporciona la conmutación de los morfismos apropiados de corecursion. Como dice camcann, creo que su otra versión no hace que estos cuadrados se conmuten.
cody
7

ICF:CCF

  • AC
    α:F(A)A
  • como flechas: cuadrados

    Morfismo de álgebra 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, que puede verse como un requisito de positividad.

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
fuente
6

λπ

Cuando traduce (descompone) los tipos al cálculo del proceso, la dualidad se vuelve simple: la entrada es dual a la salida y viceversa . No hay (mucho) más en la dualidad.

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

¿Qué significa la cuantificación universal a nivel de proceso? Hay una interpretación directa: si los datos se escriben mediante una variable de tipo, no se pueden usar como el sujeto de una salida, solo como un objeto. Por lo tanto, no podemos inspeccionar estos datos, solo podemos pasarlos u olvidarlos.

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

La teoría de esto se ha desarrollado con cierto detalle en [1, 2, 3] y algunos otros, más difíciles de acceder al trabajo, y se relacionó con mucha precisión con la lógica lineal polarizada y su noción de dualidad en 4 .

λλπλπλ

π

π

π

4 K. Honda et al., Una correspondencia exacta entre un cálculo tipo pi y redes de prueba polarizadas .

5 R. Milner, Funciones como procesos .

Martin Berger
fuente
1
re: Su punto sobre el número de habitantes de tipo ∀X. (X, (X) ↑) ↓. ¿Existe entonces un análogo de "teoremas libres" para el cálculo pi? Si es así, ¿dónde se discute esto?
Dominic Mulligan el
1
Hola @DominicMulligan, sí, hay "teoremas gratuitos" e investigamos esto un poco en [1, 2]. Creo que se podría decir mucho más en esta dirección.
Martin Berger el
1
@MartinBerger: ¿Puedes usar la parametricidad para descubrir cuál es la noción "correcta" de equivalencia de proceso para el cálculo de tipo pi? Por ejemplo, en el Sistema F, la relación lógica paramétrica corresponde a la equivalencia contextual. Por analogía, esperaría que cualquier noción de equivalencia de proceso correspondiente a la relación lógica paramétrica para el cálculo pi sea especialmente interesante.
Neel Krishnaswami
π
Las caracterizaciones basadas en bisimulación son útiles para el razonamiento práctico, ya que no requieren cierre en todos los contextos.
Martin Berger