¿Cuál es el logaritmo o la operación raíz en type-space?


27

Hace poco estuve leyendo Las dos dualidades de la computación: tipos negativos y fraccionarios . El documento se expande sobre tipos de suma y tipos de producto, dando semántica a los tipos a - by a/b.

A diferencia de la suma y la multiplicación, no hay uno sino dos inversos de exponenciación, logaritmos y enraizamiento. Si los tipos de función (a → b) son exponenciación teórica de tipo, dado el tipo a → b(o b^a) ¿qué significa tener el tipo logb(c)o el tipo a√c?

¿Tiene sentido extender logaritmos y raíces a los tipos?

Si es así, ¿ha habido algún trabajo en esta área y cuáles son algunas buenas instrucciones sobre cómo comprender las repercusiones?

Traté de buscar información sobre esto a través de la lógica, esperando que la correspondencia Curry-Howard pudiera ayudarme, pero fue en vano.

Respuestas:


40

Un tipo tiene un logaritmo en base de exactamente cuando . Es decir, puede ser visto como un recipiente de elementos en posiciones dadas por . De hecho, se trata de una cuestión de preguntar a qué potencia debemos elevar para obtener .X P C P X C X P P X CCXPCPXCXPPXC

Tiene sentido trabajar con donde es un functor, siempre que exista el logaritmo, lo que significa . Tenga en cuenta que si , entonces ciertamente tenemos , por lo que el contenedor no nos dice nada más que sus elementos: los contenedores con una variedad de formas hacen No tener logaritmos.F l o glogFFFlogX(FX)FFXlogFXF11

Las leyes familiares de los logaritmos tienen sentido cuando piensas en términos de conjuntos de posiciones

log(K1)=0no positions in empty containerlogI=1container for one, one positionlog(F×G)=logF+logGpair of containers, choice of positionslog(FG)=logF×logGcontainer of containers, pair of positions

También donde debajo de la carpeta. Es decir, la ruta a cada elemento en algunos codatos se define inductivamente iterando el logaritmo. P.ej,Z = l o glogX(νY.T)=μZ.logXTZ=logXY

logStream=logX(νY.X×Y)=μZ.1+Z=Nat

Dado que la derivada nos dice el tipo en contextos de un agujero y el logaritmo nos dice las posiciones, deberíamos esperar una conexión, y de hecho

F11logFF1

Donde no hay elección de forma, una posición es igual a un contexto de un agujero con los elementos borrados. Más generalmente, siempre representa la elección de una forma junto con una posición del elemento dentro de esa forma.FF1F

Me temo que tengo menos que decir sobre las raíces, pero uno podría comenzar con una definición similar y seguir la nariz. Para obtener más usos de los logaritmos de tipos, consulte "Funciones de memorando de Ralf Hinze, ¡politípicamente!". Tengo que correr ...


3
La respuesta del propio Da Man. Bienvenido Conor!
Andrej Bauer

Hmm, estoy interesado en ver qué tipos de raíz son, ya que requerirían tipos con un número imaginario de habitantes. A menos que me equivoque. Aceptaré tu respuesta, pero si tienes tiempo para elaborar raíces, sería muy apreciado.
efrey

¿Puede esto estar relacionado con la serie Taylor de ln (1 + x) de alguna manera?
yatima2975

2
Con logaritmos y exponenciales, me pregunto ... ¿qué necesitamos para construir un objeto Napier ? (por ejemplo, el objeto supuestamente único etal que ∂e = e)
Rhymoid

1

No conozco ningún trabajo que persiga esta línea, pero unos momentos pensados ​​en ello me llevaron a esta hipótesis: ¿no sería la "raíz" del tipo exponencial el codominio y el "logaritmo" de la exponencial? solo el dominio?


Bien, entonces creo que tu intuición es buena, pero tu conclusión no es correcta. La operación de raíz y la operación de logaritmo son lo que obtienes cuando "inviertes" el codominio o el dominio respectivamente, no los propios (co) dominios. La pregunta es, ¿qué entendemos por inversión y cuál es la operación de tipo binario que produce?
efrey

xyyxxy

Lo siento, no he sido totalmente claro en mi terminología. No quiero preguntar "cuál es la raíz, cuál es el resultado de aplicar la función logaritmo". Me pregunto cuál es la operación de enraizamiento. Cuál es la operación de encontrar el logaritmo. Si es expenenciación, ¿cuáles son dos tipos bajo la operación raíz? ¿Qué son dos tipos bajo la operación de logaritmo? Lo que quiero decir con "invertir el argumento" es algo que no hay tiempo para explicar aquí. Aclararé mi pregunta, gracias.
efrey

El documento que vinculé proporciona una semántica para el tipo a - by el tipo a / b. No me preocupa el resultado de reducir el logaritmo y la raíz de las operaciones, sino entender su semántica como operadores de tipo binario.
efrey
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.