4 votos

Lógica dentro de la teoría de tipos. ¿Existe un consenso académico aproximado sobre cómo debe hacerse?

Supongo que debido a su presencia en varios blogs de matemáticas e incluso de física, recientemente he empezado a aprender algo de teoría de tipos, a menudo de gente que sabe de ella y de libros que la utilizan. Quiero escribir algunos apuntes personales, concretamente sobre cómo se hacen las matemáticas en ella, pero tengo una especie de problema en que parece que hay decenas de formas de implementar la lógica en ella y no veo cuál es más canon que la otra. "Mi trabajo" hasta ahora consiste en recopilar las ideas que he encontrado.

Una norma como

$$\frac{\Gamma\vdash a:P\hspace{1cm}\Gamma\vdash f:P\to Q}{\Gamma\vdash f(a):Q}$$

es esencialmente utilizar la idea "si-entonces" tres veces a la vez. El eje vertical $\frac{foo}{bar}$ se utiliza como para la deducción natural, el $\vdash$ siendo sustituido por implicaciones $\implies$ . Otras veces parece que hacemos la teoría de la prueba con el lenguaje del objeto escrito horizontalmente. El contexto $\Gamma$ es a veces una serie de juicios tipográficos separados por comas $\Gamma=(a:A,b:B,c:C)$ pero en un sistema reforzado podemos hacer que sean un tipo en sí mismo, $\Gamma=(a,b,c):A\times B\times C$ . El torniquete denota derivabilidad y $foo\vdash bar$ son secuencias clásicas. Aquí me pregunto si realmente necesitamos dibujar en dos dimensiones y, si no es así, ¿el eje vertical es la meta-lógica de la construcción? Cuando escribimos $\frac{A\ \ \ B}{C}$ el espacio vacío entre $A$ y $B$ debe ser un "y" formalizado. Es curioso, pues, que la gente esté tan motivada para resolver la aparentemente difícil tarea de dar semántica a los sistemas formales que carecen de producto-tipo. Entonces la gente hace cálculos no tipificados en la teoría de tipos, que es lo mismo que colapsar un tipo. Las proposiciones lógicas se convierten en los términos. O usamos la correspondencia Curry Howard. Los términos son pruebas entonces, los tipos son proposiciones. Por lo tanto, la función tipo $\to$ son implicaciones $\implies$ . Cuando se trata de su semántica categórica, las cosas se salen de madre. Lo primero que leí, en un contexto de tipos dependientes, fue que las categorías son los tipos básicos y los funtores son implicaciones en la interpretación lógica. Pero entonces los objetos son los tipos y me imaginé que estos son objetos con elementos (como set) como los tipos tienen términos. Pero los términos (o las pruebas, en la interpretación lógica) sólo están contenidos en los objetos de forma solapada, porque los objetos son en su mayoría el contexto. Los morfismos son los torniquetes. Pero a veces son programas informáticos, es decir, pruebas, es decir, las implicaciones de una proposición (=tipo (=objeto)) a otra. De hecho, son clases de equivalencia de los cálculos con respecto a $\beta\eta$ -conversión. Pero si tienes 2 categorías, entonces los 2-morfismos son la conversión. La última parte me parece razonable.

En cualquier caso, ¿cuál es la forma más natural de utilizar la teoría de tipos para capturar la lógica proposicional, de modo que no tenga que reescribir mis notas por completo una vez que pase a la lógica de predicados? (=tipos dependientes (=categorías fibrosas?)). Mis motivaciones son una presentación clara de las matemáticas, no realmente teoría de la prueba y no un gran énfasis en la computación.

2voto

Daniel Mahler Puntos 994

Dado que usted ya está familiarizado con los conceptos y enfoques pertinentes, como las categorías fibrosas y el isomorfismo de Curry-Howard, no estoy completamente seguro de lo que está buscando exactamente. Creo que estás buscando un marco categórico para describir y relacionar muchos tipos diferentes de lógica, proposicional, de predicados y quizás incluso de orden superior, modal o de tipo dependiente. El enfoque sistemático más general de la lógica categórica que conozco es el de Bart Jacobs principalmente en su tesis & en su libro . También hay estudios de su enfoque en algunos de sus primeros trabajos (principalmente anteriores a 1995) papeles . Su marco se basa principalmente en (combinaciones de) fibraciones y abarca sistemas avanzados como el Cálculo de Construcciones y la teoría de Martin-Lof. Este enfoque está relacionado con los sistemas de tipos generalizados de Barendregt (también conocido como cubismo). Aquí es un bonito y conciso estudio de Jacobs que relaciona sus planteamientos con los de Barendregt.

El principal principio de organización en el marco de Jacobs consiste en organizar las expresiones de los lenguajes en niveles como términos, proposiciones, tipos y clases y, a continuación, observar qué tipos de dependencias pueden existir entre las expresiones de diferentes niveles. Más concretamente, el nivel $L_2$ depende del nivel $L_1$ (escrito $L_2 \succ L_1$ ) si se pueden derivar secuencias $\Gamma \vdash A:L_1$ y $\Gamma, x:A \vdash B[x]:L_2$ . Por ejemplo, la lógica proposicional y, de forma equivalente, el cálculo lambda simplemente tipado, sólo tiene un nivel llamado $Type$ y sin dependencias. La teoría de tipos de Martin-Lof también tiene un solo nivel pero con la dependencia reflexiva $Type \succ Type$ . Los cálculos de orden superior suelen tener al menos un segundo nivel que suele llamarse $Kind$ con $Type \succ Kind$ y el axioma $\vdash Type : Kind$ . Dada una presentación de cálculo secuencial de una lógica, este marco permite determinar los niveles y las dependencias y establece la estructura general de la semántica categórica basada en ellos. También muestra cómo modelar la semántica de los tipos de productos de suma y exponentes dentro y a través de los niveles.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X