stringtranslate.com

Correspondencia entre Curry y Howard

En la teoría de lenguajes de programación y teoría de pruebas , la correspondencia de Curry-Howard es la relación directa entre los programas informáticos y las pruebas matemáticas . También se la conoce como isomorfismo o equivalencia de Curry-Howard , o interpretación de las pruebas como programas y de las proposiciones o fórmulas como tipos .

Se trata de una generalización de una analogía sintáctica entre sistemas de lógica formal y cálculos computacionales que fue descubierta por primera vez por el matemático estadounidense Haskell Curry y el lógico William Alvin Howard . [1] Es el vínculo entre lógica y computación el que usualmente se atribuye a Curry y Howard, aunque la idea está relacionada con la interpretación operacional de la lógica intuicionista dada en varias formulaciones por LEJ Brouwer , Arend Heyting y Andrey Kolmogorov (ver Interpretación de Brouwer–Heyting–Kolmogorov ) [2] y Stephen Kleene (ver Realizabilidad ). La relación se ha extendido para incluir la teoría de categorías como la correspondencia de tres vías Curry–Howard–Lambek . [3] [4] [5]

Origen, alcance y consecuencias

Los inicios de la correspondencia Curry-Howard se encuentran en varias observaciones:

  1. En 1934, Curry observa que los tipos de combinadores podrían verse como esquemas axiomáticos para la lógica implicacional intuicionista . [6]
  2. En 1958 observa que un cierto tipo de sistema de prueba , conocido como sistemas de deducción de estilo Hilbert , coincide en algún fragmento con el fragmento tipificado de un modelo estándar de computación conocido como lógica combinatoria . [7]
  3. En 1969, Howard observa que otro sistema de prueba de "nivel más alto" , conocido como deducción natural , puede interpretarse directamente en su versión intuicionista como una variante tipificada del modelo de computación conocido como cálculo lambda . [8]

La correspondencia Curry-Howard es la observación de que existe un isomorfismo entre los sistemas de demostración y los modelos de computación. Es la afirmación de que estas dos familias de formalismos pueden considerarse idénticas.

Si uno hace abstracción de las peculiaridades de cada formalismo, surge la siguiente generalización: una prueba es un programa, y ​​la fórmula que prueba es el tipo para el programa . Más informalmente, esto puede verse como una analogía que establece que el tipo de retorno de una función (es decir, el tipo de valores devueltos por una función) es análogo a un teorema lógico, sujeto a hipótesis correspondientes a los tipos de los valores de los argumentos pasados ​​a la función; y que el programa para calcular esa función es análogo a una prueba de ese teorema. Esto establece una forma de programación lógica sobre una base rigurosa: las pruebas pueden representarse como programas, y especialmente como términos lambda , o las pruebas pueden ejecutarse .

La correspondencia ha sido el punto de partida de un amplio espectro de nuevas investigaciones tras su descubrimiento, que han conducido en particular a una nueva clase de sistemas formales diseñados para actuar tanto como un sistema de pruebas como un lenguaje de programación funcional tipado . Esto incluye la teoría de tipos intuicionista de Martin-Löf y el Cálculo de construcciones de Coquand , dos cálculos en los que las pruebas son objetos regulares del discurso y en los que se pueden enunciar las propiedades de las pruebas de la misma manera que en el caso de cualquier programa. Este campo de investigación suele denominarse teoría de tipos moderna .

Estos cálculos lambda tipados derivados del paradigma Curry-Howard condujeron a software como Coq en el que las pruebas vistas como programas pueden formalizarse, verificarse y ejecutarse.

Una dirección inversa es utilizar un programa para extraer una prueba , dada su corrección (un área de investigación estrechamente relacionada con el código portador de pruebas) . Esto solo es factible si el lenguaje de programación para el que está escrito el programa tiene una tipificación muy rica: el desarrollo de tales sistemas de tipos ha sido motivado en parte por el deseo de hacer que la correspondencia Curry-Howard sea relevante en la práctica.

La correspondencia Curry-Howard también planteó nuevas preguntas sobre el contenido computacional de los conceptos de prueba que no estaban contempladas en los trabajos originales de Curry y Howard. En particular, se ha demostrado que la lógica clásica se corresponde con la capacidad de manipular la continuación de los programas y la simetría del cálculo secuencial para expresar la dualidad entre las dos estrategias de evaluación conocidas como llamada por nombre y llamada por valor.

Debido a la posibilidad de escribir programas no terminantes, los modelos de computación Turing-completos (como lenguajes con funciones recursivas arbitrarias ) deben interpretarse con cuidado, ya que la aplicación ingenua de la correspondencia conduce a una lógica inconsistente. La mejor manera de tratar la computación arbitraria desde un punto de vista lógico es todavía una cuestión de investigación debatida activamente, pero un enfoque popular se basa en el uso de mónadas para segregar el código demostrablemente terminante del código potencialmente no terminante (un enfoque que también se generaliza a modelos de computación mucho más ricos, [9] y está relacionado con la lógica modal por una extensión natural del isomorfismo de Curry-Howard [ext 1] ). Un enfoque más radical, defendido por la programación funcional total , es eliminar la recursión sin restricciones (y renunciar a la completitud de Turing , aunque aún se conserva una alta complejidad computacional), utilizando una correcursión más controlada donde sea que realmente se desee un comportamiento no terminante.

Formulación general

En su formulación más general, la correspondencia Curry-Howard es una correspondencia entre cálculos de prueba formales y sistemas de tipos para modelos de computación . En particular, se divide en dos correspondencias: una a nivel de fórmulas y tipos que es independiente de qué sistema de prueba o modelo de computación en particular se considera, y otra a nivel de pruebas y programas que, esta vez, es específica de la elección particular del sistema de prueba y modelo de computación considerados.

A nivel de fórmulas y tipos, la correspondencia dice que la implicación se comporta igual que un tipo de función, la conjunción como un tipo "producto" (esto puede llamarse una tupla, una estructura, una lista o algún otro término dependiendo del lenguaje), la disyunción como un tipo de suma (este tipo puede llamarse una unión), la fórmula falsa como el tipo vacío y la fórmula verdadera como el tipo de unidad (cuyo único miembro es el objeto nulo). Los cuantificadores corresponden al espacio de funciones dependientes o productos (según corresponda). Esto se resume en la siguiente tabla:

A nivel de sistemas de prueba y modelos de cálculos, la correspondencia muestra principalmente la identidad de estructura, en primer lugar, entre algunas formulaciones particulares de sistemas conocidos como sistema de deducción de estilo Hilbert y lógica combinatoria , y, en segundo lugar, entre algunas formulaciones particulares de sistemas conocidos como deducción natural y cálculo lambda .

Entre el sistema de deducción natural y el cálculo lambda existen las siguientes correspondencias:

Sistemas correspondientes

Sistemas de deducción intuicionistas de estilo Hilbert y lógica combinatoria tipificada

Al principio, se trataba de una simple observación en el libro de Curry y Feys de 1958 sobre lógica combinatoria: los tipos más simples de los combinadores básicos K y S de la lógica combinatoria sorprendentemente correspondían a los respectivos esquemas axiomáticos α → ( βα ) y ( α → ( βγ )) → (( αβ ) → ( αγ )) utilizados en los sistemas de deducción de estilo Hilbert . Por esta razón, estos esquemas se denominan ahora axiomas K y S. A continuación se ofrecen ejemplos de programas considerados como pruebas en una lógica de estilo Hilbert.

Si nos limitamos al fragmento intuicionista implicacional, una manera sencilla de formalizar la lógica al estilo de Hilbert es la siguiente. Sea Γ una colección finita de fórmulas, consideradas como hipótesis. Entonces δ es derivable de Γ, denotado Γ ⊢ δ, en los siguientes casos:

Esto se puede formalizar utilizando reglas de inferencia , como en la columna izquierda de la siguiente tabla.

La lógica combinatoria tipificada se puede formular utilizando una sintaxis similar: sea Γ una colección finita de variables, anotadas con sus tipos. Un término T (también anotado con su tipo) dependerá de estas variables [Γ ⊢ T: δ ] cuando:

Las reglas de generación definidas aquí se dan en la columna de la derecha a continuación. La observación de Curry simplemente establece que ambas columnas están en correspondencia uno a uno. La restricción de la correspondencia a la lógica intuicionista significa que algunas tautologías clásicas , como la ley de Peirce (( αβ ) → α ) → α , están excluidas de la correspondencia.

Vista a un nivel más abstracto, la correspondencia puede replantearse como se muestra en la siguiente tabla. En particular, el teorema de deducción específico de la lógica de estilo Hilbert coincide con el proceso de eliminación de abstracciones de la lógica combinatoria.

Gracias a la correspondencia, los resultados de la lógica combinatoria pueden transferirse a la lógica de estilo Hilbert y viceversa. Por ejemplo, la noción de reducción de términos en la lógica combinatoria puede transferirse a la lógica de estilo Hilbert y proporciona una manera de transformar canónicamente las demostraciones en otras demostraciones del mismo enunciado. También se puede transferir la noción de términos normales a una noción de demostraciones normales, expresando que las hipótesis de los axiomas nunca necesitan estar todas separadas (ya que de lo contrario puede ocurrir una simplificación).

Por el contrario, la no demostrabilidad en la lógica intuicionista de la ley de Peirce se puede transferir de nuevo a la lógica combinatoria: no hay ningún término tipificado de la lógica combinatoria que sea tipificable con el tipo

(( αβ ) → α ) → α .

Los resultados sobre la completitud de algunos conjuntos de combinadores o axiomas también pueden transferirse. Por ejemplo, el hecho de que el combinador X constituya una base de un punto de la lógica combinatoria (extensional) implica que el esquema de axioma único

((( α → ( βγ )) → (( αβ ) → ( αγ ))) → (( δ → ( εδ )) → ζ )) → ζ ,

que es el tipo principal de X , es un reemplazo adecuado a la combinación de los esquemas axiomáticos

α → ( βα ) y
( α → ( βγ )) → (( αβ ) → ( αγ )).

Deducción natural intuicionista y cálculo lambda tipificado

Después de que Curry enfatizara la correspondencia sintáctica entre la deducción intuicionista al estilo de Hilbert y la lógica combinatoria tipificada , Howard hizo explícita en 1969 una analogía sintáctica entre los programas de cálculo lambda simplemente tipificado y las pruebas de deducción natural . A continuación, el lado izquierdo formaliza la deducción natural implicacional intuicionista como un cálculo de secuentes (el uso de secuentes es estándar en las discusiones del isomorfismo Curry-Howard ya que permite que las reglas de deducción se establezcan de manera más clara) con debilitamiento implícito y el lado derecho muestra las reglas de tipificación del cálculo lambda . En el lado izquierdo, Γ, Γ 1 y Γ 2 denotan secuencias ordenadas de fórmulas, mientras que en el lado derecho, denotan secuencias de fórmulas nombradas (es decir, tipificadas) con todos los nombres diferentes.

Parafraseando la correspondencia, probar Γ ⊢ α significa tener un programa que, dados valores con los tipos listados en Γ, fabrica un objeto de tipo α . Un axioma/hipótesis corresponde a la introducción de una nueva variable con un nuevo tipo sin restricciones, la regla →  I corresponde a la abstracción de la función y la regla →  E corresponde a la aplicación de la función. Obsérvese que la correspondencia no es exacta si el contexto Γ se toma como un conjunto de fórmulas como, por ejemplo, los λ-términos λ x . λ y . x y λ x . λ y . y del tipo ααα no se distinguirían en la correspondencia. A continuación se dan ejemplos.

Howard demostró que la correspondencia se extiende a otros conectores de la lógica y otras construcciones del cálculo lambda de tipos simples. Vista a un nivel abstracto, la correspondencia puede entonces resumirse como se muestra en la siguiente tabla. En particular, también muestra que la noción de formas normales en el cálculo lambda coincide con la noción de Prawitz de deducción normal en la deducción natural , de lo que se deduce que los algoritmos para el problema de habitabilidad de tipos pueden convertirse en algoritmos para decidir la demostrabilidad intuicionista .

La correspondencia de Howard se extiende naturalmente a otras extensiones de la deducción natural y del cálculo lambda de tipos simples . A continuación se ofrece una lista no exhaustiva:

Operadores de lógica y control clásicos

En la época de Curry, y también en la de Howard, la correspondencia de las pruebas como programas sólo concernía a la lógica intuicionista , es decir, una lógica en la que, en particular, la ley de Peirce no era deducible. La extensión de la correspondencia a la ley de Peirce y, por lo tanto, a la lógica clásica se hizo evidente a partir del trabajo de Griffin sobre los operadores de tipificación que capturan el contexto de evaluación de una ejecución de programa dada, de modo que este contexto de evaluación pueda reinstalarse más tarde. A continuación se muestra la correspondencia básica de estilo Curry-Howard para la lógica clásica. Nótese la correspondencia entre la traducción de doble negación utilizada para mapear las pruebas clásicas a la lógica intuicionista y la traducción de estilo de paso de continuación utilizada para mapear los términos lambda que involucran control a términos lambda puros. Más particularmente, las traducciones de estilo de paso de continuación de llamada por nombre se relacionan con la traducción de doble negación de Kolmogorov y las traducciones de estilo de paso de continuación de llamada por valor se relacionan con un tipo de traducción de doble negación debido a Kuroda.

Existe una correspondencia Curry-Howard más fina para la lógica clásica si se define la lógica clásica no añadiendo un axioma como la ley de Peirce , sino permitiendo varias conclusiones en secuencias. En el caso de la deducción natural clásica, existe una correspondencia de pruebas como programas con los programas tipificados del cálculo λμ de Parigot .

Cálculo secuencial

Se puede establecer una correspondencia de pruebas como programas para el formalismo conocido como cálculo secuencial de Gentzen , pero no es una correspondencia con un modelo de computación preexistente bien definido como lo fue para las deducciones naturales y de estilo Hilbert.

El cálculo secuencial se caracteriza por la presencia de reglas de introducción por la izquierda, reglas de introducción por la derecha y una regla de corte que puede eliminarse. La estructura del cálculo secuencial se relaciona con un cálculo cuya estructura es cercana a la de algunas máquinas abstractas . La correspondencia informal es la siguiente:

Correspondencias relacionadas entre pruebas como programas

El papel de De Bruijn

NG de Bruijn utilizó la notación lambda para representar las pruebas del verificador de teoremas Automath y representó las proposiciones como "categorías" de sus pruebas. Fue a fines de la década de 1960, en el mismo período en que Howard escribió su manuscrito; de Bruijn probablemente desconocía el trabajo de Howard y enunció la correspondencia de forma independiente (Sørensen & Urzyczyn [1998] 2006, pp 98-99). Algunos investigadores tienden a utilizar el término correspondencia Curry-Howard-de Bruijn en lugar de correspondencia Curry-Howard.

Interpretación de BHK

La interpretación de BHK interpreta las demostraciones intuicionistas como funciones, pero no especifica la clase de funciones relevantes para la interpretación. Si se toma el cálculo lambda para esta clase de funciones, entonces la interpretación de BHK dice lo mismo que la correspondencia de Howard entre la deducción natural y el cálculo lambda.

Realizabilidad

La realizabilidad recursiva de Kleene divide las pruebas de la aritmética intuicionista en el par de una función recursiva y de una prueba de una fórmula que expresa que la función recursiva "realiza", es decir, instancia correctamente las disyunciones y los cuantificadores existenciales de la fórmula inicial de modo que la fórmula se vuelve verdadera.

La realizabilidad modificada de Kreisel se aplica a la lógica de predicados intuicionista de orden superior y muestra que el término lambda simplemente tipificado extraído inductivamente de la prueba realiza la fórmula inicial. En el caso de la lógica proposicional, coincide con la afirmación de Howard: el término lambda extraído es la prueba misma (vista como un término lambda no tipificado) y la afirmación de realizabilidad es una paráfrasis del hecho de que el término lambda extraído tiene el tipo que la fórmula significa (vista como un tipo).

La interpretación dialéctica de Gödel realiza una (extensión de) aritmética intuicionista con funciones computables. La conexión con el cálculo lambda no está clara, ni siquiera en el caso de la deducción natural.

Correspondencia Curry-Howard-Lambek

Joachim Lambek demostró a principios de los años 1970 que las pruebas de la lógica proposicional intuicionista y los combinadores de la lógica combinatoria tipificada comparten una teoría ecuacional común, la teoría de las categorías cartesianas cerradas . La expresión correspondencia Curry-Howard-Lambek es utilizada ahora por algunas personas [¿ por quién? ] para referirse a las relaciones entre la lógica intuicionista, el cálculo lambda tipificado y las categorías cartesianas cerradas. Bajo esta correspondencia, los objetos de una categoría cartesiana cerrada pueden interpretarse como proposiciones (tipos), y los morfismos como deducciones que asignan un conjunto de suposiciones ( contexto de tipificación ) a un consecuente válido (término bien tipificado). [12]

La correspondencia de Lambek es una correspondencia de teorías ecuacionales, que se abstrae de dinámicas de computación como la reducción beta y la normalización de términos, y no es la expresión de una identidad sintáctica de estructuras como es el caso de cada una de las correspondencias de Curry y Howard: es decir, la estructura de un morfismo bien definido en una categoría cartesiana cerrada no es comparable a la estructura de una prueba del juicio correspondiente en la lógica de estilo Hilbert o en la deducción natural. Por ejemplo, no es posible afirmar o probar que un morfismo es normalizador, establecer un teorema de tipo Church-Rosser o hablar de una categoría cartesiana cerrada "fuertemente normalizadora". Para aclarar esta distinción, la estructura sintáctica subyacente de las categorías cartesianas cerradas se reformula a continuación.

Los objetos (proposiciones/tipos) incluyen

Los morfismos (deducciones/términos) incluyen

De manera equivalente a las anotaciones anteriores, se pueden construir morfismos bien definidos (términos tipificados) en cualquier categoría cartesiana cerrada según las siguientes reglas de tipificación . La notación de morfismos categóricos habitual se reemplaza por la notación de contexto de tipificación .

Identidad:

Composición:

Tipo de unidad ( objeto terminal ):

Producto cartesiano:

Proyección izquierda y derecha:

Curry :

Solicitud :

Finalmente, las ecuaciones de la categoría son

Estas ecuaciones implican las siguientes leyes:

Ahora bien, existe t tal que si y solo si es demostrable en la lógica intuicionista implicacional.

Ejemplos

Gracias a la correspondencia Curry-Howard, una expresión tipificada cuyo tipo corresponde a una fórmula lógica es análoga a una demostración de esa fórmula. A continuación se ofrecen algunos ejemplos.

El combinador de identidad visto como una prueba dealfa→alfaen lógica de estilo Hilbert

Como ejemplo, considere una prueba del teorema αα . En cálculo lambda , este es el tipo de la función identidad I = λ x . x y en lógica combinatoria, la función identidad se obtiene aplicando S = λ fgx . fx ( gx ) dos veces a K = λ xy . x . Es decir, I = (( S K ) K ) . Como descripción de una prueba, esto dice que se pueden usar los siguientes pasos para demostrar αα :

En general, el procedimiento es que siempre que el programa contenga una aplicación de la forma ( P Q ), se deben seguir estos pasos:

  1. Primero demuestre los teoremas correspondientes a los tipos de P y Q.
  2. Como P se aplica a Q , el tipo de P debe tener la forma αβ y el tipo de Q debe tener la forma α para algunos α y β . Por lo tanto, es posible deducir la conclusión, β , mediante la regla del modus ponens.

El combinador de composición visto como una prueba de (β→alfa) → (gamma→β) →gamma→alfaen lógica de estilo Hilbert

Como ejemplo más complicado, veamos el teorema que corresponde a la función B. El tipo de B es ( βα ) → ( γβ ) → γα . B es equivalente a ( S ( K S ) K ). Esta es nuestra hoja de ruta para la demostración del teorema ( βα ) → ( γβ ) → γα .

El primer paso es construir ( K S ). Para que el antecedente del axioma K se parezca al axioma S , iguale α a ( αβγ ) → ( αβ ) → αγ , y β a δ (para evitar colisiones entre variables):

K  : αβα
K [ α = ( αβγ ) → ( αβ ) → αγ , β = δ ] : (( αβγ ) → ( αβ ) → αγ ) → δ → ( αβγ ) → ( αβ ) → αγ

Dado que el antecedente aquí es simplemente S , el consecuente se puede separar utilizando Modus Ponens:

KS  : δ → ( αβγ ) → ( αβ ) → αγ

Este es el teorema que corresponde al tipo de ( K S ). Ahora apliquemos S a esta expresión. Tomando S como sigue

S  : ( αβγ ) → ( αβ ) → αγ ,

ponga α = δ , β = αβγ , y γ = ( αβ ) → αγ , dando como resultado

S [ α = δ , β = αβγ , γ = ( αβ ) → αγ ] : ( δ → ( αβγ ) → ( αβ ) → αγ ) → ( δ → ( αβγ )) → δ → ( αβ ) → αγ

y luego separar el consecuente:

S (KS)  : ( δαβγ ) → δ → ( αβ ) → αγ

Esta es la fórmula para el tipo de ( S ( K S )). Un caso especial de este teorema tiene δ = ( βγ ) :

S (KS) [ δ = βγ ] : (( βγ ) → αβγ ) → ( βγ ) → ( αβ ) → αγ

Esta última fórmula debe aplicarse a K. Especialice K nuevamente, esta vez reemplazando α con ( βγ ) y β con α :

K  : αβα
K [ α = βγ , β = α ] : ( βγ ) → α → ( βγ )

Esto es lo mismo que el antecedente de la fórmula anterior, por lo que, separando el consecuente:

S (KS) K  : ( βγ ) → ( αβ ) → αγ

Cambiando los nombres de las variables α y γ obtenemos

( βα ) → ( γβ ) → γα

que era lo que quedaba por demostrar.

La prueba normal de (β→alfa) → (gamma→β) →gamma→alfaEn la deducción natural se considera un término λ.

El siguiente diagrama demuestra que ( βα ) → ( γβ ) → γα en deducción natural y muestra cómo se puede interpretar como la expresión λ λ abg .( a ( b g )) de tipo ( βα ) → ( γβ ) → γα .

 a:β → α, b:γ → β, g:γ ⊢ b : γ → β a:β → α, b:γ → β, g:γ ⊢ g : γ——————————————————————————————————— ———————————————— ———————————————————————————————————————————————————— ———a:β → α, b:γ → β, g:γ ⊢ a : β → α a:β → α, b:γ → β, g:γ ⊢ bg : β———————————————————————————————————————————————————— —————————————————————— a:β → α, b:γ → β, g:γ ⊢ a (bg) : α ————————————————————————————————————— a:β → α, b:γ → β ⊢ λ gramo. a (bg) : γ → α ———————————————————————————————————————— a:β → α ⊢ λ b. λg. a (bg) : (γ → β) → γ → α ————————————————————————————————————— ⊢ λa. λb. λg. a (bg) : (β → α) → (γ → β) → γ → α

Otras aplicaciones

Recientemente, se ha propuesto el isomorfismo como una forma de definir la partición del espacio de búsqueda en la programación genética . [13] El método indexa conjuntos de genotipos (los árboles de programa desarrollados por el sistema GP) por su prueba isomórfica de Curry-Howard (a la que se hace referencia como especie).

Como señala el director de investigación del INRIA , Bernard Lang [14] , la correspondencia Curry-Howard constituye un argumento contra la patentabilidad del software: dado que los algoritmos son pruebas matemáticas, la patentabilidad de los primeros implicaría la patentabilidad de los segundos. Un teorema podría ser propiedad privada; un matemático tendría que pagar por usarlo y confiar en la empresa que lo vende, pero mantiene en secreto sus pruebas y rechaza la responsabilidad por cualquier error.

Generalizaciones

Las correspondencias que se enumeran aquí van mucho más allá y son más profundas. Por ejemplo, las categorías cerradas cartesianas se generalizan mediante categorías monoidales cerradas . El lenguaje interno de estas categorías es el sistema de tipos lineales (que corresponde a la lógica lineal ), que generaliza el cálculo lambda de tipos simples como el lenguaje interno de las categorías cerradas cartesianas. Además, se puede demostrar que estas corresponden a cobordismos [15] , que desempeñan un papel vital en la teoría de cuerdas .

También se explora un conjunto extendido de equivalencias en la teoría de tipos de homotopía . Aquí, la teoría de tipos se extiende mediante el axioma de univalencia ("equivalencia es equivalente a igualdad") que permite que la teoría de tipos de homotopía se use como base para todas las matemáticas (incluida la teoría de conjuntos y la lógica clásica, proporcionando nuevas formas de discutir el axioma de elección y muchas otras cosas). Es decir, la correspondencia de Curry-Howard de que las pruebas son elementos de tipos habitados se generaliza a la noción de equivalencia homotópica de pruebas (como caminos en el espacio, el tipo identidad o el tipo igualdad de la teoría de tipos se interpreta como un camino). [16]

Referencias

  1. ^ La correspondencia se hizo explícita por primera vez en Howard 1980. Véase, por ejemplo, la sección 4.6, p.53 Gert Smolka y Jan Schwinghammer (2007-8), Lecture Notes in Semantics
  2. ^ La interpretación de Brouwer-Heyting-Kolmogorov también se denomina "interpretación de la prueba": p. 161 de Juliette Kennedy, Roman Kossak, eds. 2011. Teoría de conjuntos, aritmética y fundamentos de las matemáticas: teoremas, filosofías ISBN  978-1-107-00804-5
  3. ^ Casadio, Claudia; Scott, Philip J. (2021). Joachim Lambek: La interacción de las matemáticas, la lógica y la lingüística. Springer. pág. 184. ISBN 978-3-030-66545-6.
  4. ^ Coecke, Bob; Kissinger, Aleks (2017). Representación de procesos cuánticos. Cambridge University Press. pág. 82. ISBN 978-1-107-10422-8.
  5. ^ "Trilogía computacional". nLab . Consultado el 29 de octubre de 2023 .
  6. ^ Curry 1934.
  7. ^ Curry y Feys 1958.
  8. ^ Howard 1980.
  9. ^ Moggi, Eugenio (1991), "Nociones de computación y mónadas" (PDF) , Información y computación , 93 (1): 55–92, doi : 10.1016/0890-5401(91)90052-4
  10. ^ Sørenson, Morten; Urzyczyn, Paweł (1998), Conferencias sobre el isomorfismo de Curry-Howard , CiteSeerX 10.1.1.17.7385 
  11. ^ Goldblatt, "7.6 Topología de Grothendieck como modalidad intuicionista" (PDF) , Lógica modal matemática: un modelo de su evolución , págs. 76-81La modalidad "laxa" a la que se hace referencia es de Benton; Bierman; de Paiva (1998), "Tipos computacionales desde una perspectiva lógica", Journal of Functional Programming , 8 (2): 177–193, CiteSeerX 10.1.1.258.6004 , doi :10.1017/s0956796898002998, S2CID  6149614 
  12. ^ Lambek, Joachim; Scott, PJ (1989). Introducción a la lógica categórica de orden superior . Cambridge New York Port Chester [etc.]: Cambridge University Press. ISBN 0521356539.
  13. ^ F. Binard y A. Felty, "Programación genética con tipos polimórficos y funciones de orden superior". En Actas de la 10.ª conferencia anual sobre computación genética y evolutiva, páginas 1187-1194, 2008.[1]
  14. ^ "Artículo". bat8.inria.fr . Archivado desde el original el 17 de noviembre de 2013 . Consultado el 31 de enero de 2020 .
  15. ^ John c. Baez y Mike Stay, "Física, topología, lógica y computación: una piedra de Rosetta", (2009) ArXiv 0903.0340 en New Structures for Physics , ed. Bob Coecke, Lecture Notes in Physics vol. 813 , Springer, Berlín, 2011, págs. 95-174.
  16. ^ Teoría de tipos de homotopía: Fundamentos univalentes de las matemáticas. (2013) Programa de Fundamentos univalentes. Instituto de Estudios Avanzados .

Referencias seminales

Ampliaciones de la correspondencia

  1. ^ de Pfenning, Frank; Davies, Rowan (2001), "Una reconstrucción crítica de la lógica modal" (PDF) , Estructuras matemáticas en informática , 11 (4): 511–540, CiteSeerX 10.1.1.43.1611 , doi :10.1017/S0960129501003322, S2CID  16467268 
  2. ^ Davies, Rowan; Pfenning, Frank (2001), "Un análisis modal de computación por etapas" (PDF) , Journal of the ACM , 48 (3): 555–604, CiteSeerX 10.1.1.3.5442 , doi :10.1145/382780.382785, S2CID  52148006 

Interpretaciones filosóficas

Papeles sintéticos

Libros

Lectura adicional

Enlaces externos