¿Existe un tipo no trivial que sea igual a su propia derivada?

20

Un artículo llamado La derivada de un tipo regular es su tipo de contextos de un agujero muestra que la "cremallera" de un tipo, sus contextos de un agujero, siguen las reglas de diferenciación en álgebra de tipos.

Tenemos:

xx1x00x10x(S+T)xS+xTx(S×T)xS×T+S×xT

Podemos usar este modelo para deducir que la derivada de la unidad es nula, que la derivada de la lista es un producto de dos listas (prefijo por sufijo), y así sucesivamente.

Una pregunta natural es "¿de qué tipo es su propia derivada?" Por supuesto, ya tenemos x00 , que nos dice que void (el tipo deshabitado) es su propia derivada, pero eso no es muy interesante. Es el análogo del hecho de que la derivada de cero es cero en el cálculo infinitesimal ordinario.

¿Hay otras soluciones a la ecuación xTT ? En particular, ¿hay un análogo de xex=ex en álgebra de tipo? ¿Por qué o por qué no?

Matthew Piziak
fuente
55
Existe en la teoría de las especies combinatorias, y allí corresponde a las especies de conjuntos (finitos), pero eso no corresponde a un tipo de datos algebraicos.
Derek Elkins dejó SE
1
¿Qué quieres decir con "igual"? En su mundo, ¿son y ( S U ) × ( T U ) iguales? ¿Qué tal N y L i s t ( N ) ? (S+T)U(SU)×(TU)NList(N)
Andrej Bauer,
1
@AndrejBauer El primero sí, el último no. es igual al producto iterado 1 + N + N × N + N × N × N + = n = 0 N n en mi mente. Dicho esto, no tengo un modelo riguroso de igualdad de tipos en mi mente, y si tiene un modelo al que pueda apuntar, estaré encantado de leerlo. List(N)1+N+N×N+N×N×N+=n=0Nn
Matthew Piziak
3
@DerekElkins, como sucede, otro artículo de McBride, llamado Payasos a mi izquierda, Jokers a la derecha señala que, "Para estructuras finitas, [la iteración de un operador en las cremalleras] da lugar a una formulación de series de datos de tipos de datos directamente, encontrando todos los elementos de izquierda a derecha ... Por lo tanto, existe una conexión significativa con la noción de especie combinatoria ". Por lo tanto, no me sorprendería si las especies combinatorias también tienen un papel interesante en el contexto de esta pregunta.
Matthew Piziak
@MatthewPiziak Definitivamente lo hacen. Brent Yorgey ha hablado bastante sobre esto . Ver también su tesis .
Derek Elkins dejó SE

Respuestas:

15

Considere los conjuntos múltiples finitos . Sus elementos están dados por { x 1 , ... , x n } cociente por permutaciones, de modo que { x 1 , ... , x n } = { x π 1 , ... , x π n } para cualquier π S n . ¿Cuál es el contexto de un agujero para un elemento en tal cosa? Bueno, debemos haber tenido n > 0 para seleccionar una posición para el hoyo, por lo que nos queda el n -BagX{x1,,xn}{x1,,xn}={xπ1,,xπn}πSnn>0 elementos, pero no sabemos cuál es dónde. (Eso es diferente a las listas, donde elegir una posición para el agujero corta una lista en dos secciones, y el segundo corte derivado selecciona una de esas secciones y la corta más, como "punto" y "marca" en un editor, pero estoy divagando. ) Un contexto de un agujero en a B a gn1 es, pues, a B a gBagX , y cada B a gBagX puede surgir como tal. Pensando espacialmente, la derivada de B a gBagX debería ser él mismo.BagX

Ahora,

BagX=nNXn/Sn

¡una elección del tamaño de tupla , con una tupla de n elementos hasta un grupo de permutación de orden n ! , dándonos exactamente la expansión de la serie de potencia de e x .nnn!ex

Ingenuamente, podemos caracterizar los tipos de contenedor mediante un conjunto de formas y una familia de posiciones dependiente de la forma P : s : S X ( PSP para que un contenedor esté dado por una elección de forma y un mapa de posiciones a elementos. Con bolsos y similares, hay un giro extra.

s:SX(Ps)

La "forma" de una bolsa es algo ; las "posiciones" son { 1 , ... , n } , el conjunto finito de tamaño n , pero el mapa de posiciones a elementos debe ser invariable bajo permutaciones de S n . No debería haber forma de acceder a una bolsa que "detecta" la disposición de sus elementos.nN{1,,n}nSn

El Consorcio de Contenedores de East Midlands escribió sobre tales estructuras en Construyendo programas polimórficos con tipos de cociente , para Matemáticas de la construcción de programas 2004. Los contenedores de cociente amplían nuestro análisis habitual de estructuras por "formas" y "posiciones" al permitir que un grupo de automorfismo actúe sobre las posiciones , lo que nos permite considerar estructuras tales como pares no ordenadas , con derivado X . ¡ X n / n da una n -tupla desordenada ! , y su derivada (cuando n > 0 es un n - 1 desordenadoX2/2XnXn/n!n>0n1tupla) Las bolsas toman la suma de estos. Podemos jugar juegos similares con n- tuplas cíclicas , X n / n , donde elegir una posición para el agujero clava la rotación en un punto, dejando X n - 1 , una tupla más pequeña sin permutación.nXn/nXn1

La "división de tipos" es difícil de entender en general, pero el cociente por grupos de permutación (como en las especies combinatorias) tiene sentido, y es divertido jugar con él. (Ejercicio: formular un principio de inducción estructural para pares no ordenados de números, , y lo utilizan para implementar adición y multiplicación para que estén conmutativa por la construcción.)N2/2

La caracterización de "formas y posiciones" de los contenedores no impone finitud a ninguno de los dos. Las especies combinatorias tienden a organizarse por tamaño , en lugar de forma, lo que equivale a recopilar términos y calcular el coeficiente de cada exponente. Los conjuntos de recipientes de cociente con posiciones finitas y las especies combinatorias son básicamente giros diferentes en la misma sustancia.

trabajador porcino
fuente
¡Aparece el autor original! Gracias por visitarnos para mostrarnos este hermoso resultado.
Matthew Piziak
3

¿Qué tal la suma infinita La derivada es i , j N X i + + X i i + 1, que es igual al original por asociatividad y conmutatividad de sumas.

i,jNXi?
i,jNXi++Xii+1

Además, la suma infinita es igual a ), por lo que podríamos intentar calcular la derivada usando listas.jNList(X)

Andrej Bauer
fuente
La derivada de una lista es un par de listas (prefijo multiplicado por sufijo). Por la regla de la suma, la derivada de una lista de listas es una lista de pares de listas. ¿Es una lista de pares de listas isomorfa a una lista de listas?
Matthew Piziak
iNN×XiiNi×N×XiiNi×Nex=ixi/n!+Nan=(n+1)an+1
ni