¿Cuál es el estado actual de los programas paralelos o concurrentes en el isomorfismo de Curry-Howard?

9

En las Pruebas y Tipos de Girard podemos leer:

Desde un punto de vista algorítmico, el cálculo posterior no tiene isomorfismo de Curry-Howard, debido a la multitud de formas de escribir la misma prueba. Esto nos impide usarlo como un cálculo λ tipificado, aunque vislumbramos alguna estructura profunda de este tipo, probablemente vinculada con el paralelismo.

Pruebas y Tipos , JY Girard (Página 28)

Pero también podemos leer (sobre Linear Logic) que

Desde el punto de vista de la informática, ofrece un nuevo enfoque a las cuestiones de pereza, efectos secundarios y asignación de memoria [GirLaf, Laf87, Laf88] con aplicaciones prometedoras para el paralelismo.

Pruebas y tipos , JY Girard (Página 149, escrito por Yves Lafont)

¿Cómo se vinculan los programas paralelos con el isomorfismo de Curry-Howard? ¿Cuáles son los pensamientos actuales sobre eso?

Boris
fuente

Respuestas:

7

El marco lógico concurrente es un área interesante que incluye a sus descendientes, como Linear Meld y LolliMon . Esto se basa en la lógica lineal intuicionista.

La lógica lineal clásica tiene conexiones con la Máquina de resumen químico lineal (CHAM) como se describe, por ejemplo, en Un cálculo para redes de interacción basadas en la Máquina de resumen químico lineal que describe explícitamente el resultado como un resultado de tipo Curry-Howard.

La tesis de Alexander Summers Curry-Howard Term Calculi for Gentzen-Style Classical Logics que no he leído parece estar dirigida directamente al problema de proporcionar una correspondencia Curry-Howard para los cálculos de Gentzen-style. El cálculo de Curien y Herbelin introducido en La dualidad de la computación es un trabajo seminal en esta línea de cálculos lambda (no lineales) correspondientes a la lógica clásica.λμ

En cualquier caso, todo esto sigue siendo un área viva de investigación. Hay muchos documentos recientes sobre este tema. Lo anterior ni siquiera menciona el lado aún más estructural de la lógica de separación y la Teoría del tipo de Hoare correspondiente que se centra en los lenguajes de programación imperativos. Por ejemplo, hay una semántica de tipo teórico de la simultaneidad transaccional cuyas referencias puede rastrear para trabajos anteriores.

(Como una nota pedante, la mayoría de estos se centran en la concurrencia , no en el paralelismo per se).

Derek Elkins dejó SE
fuente
Okay. Edité el título de mi pregunta para hacerlo un poco más ancho. No sabía que la concurrencia tenía un vínculo con Curry-Howard. ¿Pero qué hay del paralelismo?
Boris
En una vista de programación funcional de Curry-Howard, cualquier paralelismo (puro) ocurriría en el nivel de reescrituras de pruebas y generalmente hay mucho (en cualquier momento que haya múltiples redexes). Puede agregar anotaciones como la de Haskell parpara controlarlo (es decir , se podría usar un orden de reducción menos paralelo por defecto que podría hacerse selectivamente más paralelo) pero no tendrían un significado lógico.
Derek Elkins dejó SE
4

Para la concurrencia en general, hay una línea de investigación muy activa, que intenté resumir en esta respuesta: https://cs.stackexchange.com/a/102711/98901

Agrego aquí un comentario sobre paralelismo, a continuación.


Avron [1996] introdujo la noción de hipersecuentes , es decir, colecciones de secuencias en juicios.

sol yH, respectivamente, entonces puedes derivar solEl |H, dónde El |es el operador para componer hipersecuentes. Siguiendo la interpretación de Abramsky de "Pruebas como procesos" [Abramsky, 1996] , obtenemos una regla de tipeo para el paralelismo: digamos que tiene dos procesos independientesPAGS y Q escrito por sol y Hrespectivamente; entonces, la composición paralelaPAGSEl |Q (con PAGS y Q independiente) está escrito por solEl |H.

Acabamos de empezar a rascar la superficie de la interpretación semántica de esto, pero es evidente que esto es paralelismo: la semántica de la composición paralela permite ver acciones simultáneas de ambos procesos, y hay un teorema en el documento que establece que ninguno de los dos los dos procesos deben esperar a que el otro realice al menos alguna acción (el Teorema de preparación). La extensión a más de dos acciones al mismo tiempo parece sencilla. (La escritura ya lo permite, pero la semántica en ese documento no lo aprovecha por completo).

fmontesi
fuente