He estado leyendo mucho sobre sistemas de tipos y tal, y entiendo aproximadamente por qué se introdujeron (para resolver la paradoja de Russel). También entiendo aproximadamente su relevancia práctica en lenguajes de programación y sistemas de prueba. Sin embargo, no estoy completamente seguro de que mi noción intuitiva de qué es un tipo sea correcta.
Mi pregunta es, ¿es válido afirmar que los tipos son proposiciones?
En otras palabras, el enunciado "n es un número natural" se corresponde con el enunciado "n tiene el tipo 'número natural'", lo que significa que todas las reglas algebraicas que involucran números naturales se mantienen para n. (Es decir, otra forma, las reglas algebraicas son declaraciones. Esas declaraciones que son verdaderas para los números naturales también son verdaderas para n.)
Entonces, ¿significa esto que un objeto matemático puede tener más de un tipo?
Además, sé que los conjuntos no son equivalentes a los tipos porque no puede tener un conjunto de todos los conjuntos. ¿Podría afirmar que si un conjunto es un objeto matemático similar a un número o una función , un tipo es una especie de objeto metamatemático y, por la misma lógica, un tipo es un objeto metametamatemático? (en el sentido de que cada "meta" indica un mayor nivel de abstracción ...)
¿Tiene esto algún tipo de vínculo con la teoría de categorías?
fuente
Respuestas:
El papel clave de los tipos es dividir los objetos de interés en universos diferentes, en lugar de considerar todo lo que existe en un universo. Originalmente, los tipos fueron diseñados para evitar paradojas, pero como saben, tienen muchas otras aplicaciones. Los tipos dan una forma de clasificar o estratificar objetos (ver entrada de blog ).
Algunos trabajan con el eslogan de que las proposiciones son tipos , por lo que su intuición ciertamente le sirve bien, aunque hay trabajos como Propuestas como [Tipos] de Steve Awodey y Andrej Bauer que argumenta lo contrario, es decir, que cada tipo tiene una proposición asociada. La distinción se hace porque los tipos tienen contenido computacional, mientras que las proposiciones no.
Un objeto puede tener más de un tipo debido a subtipos y a través de coacciones de tipo .
Los tipos generalmente se organizan en una jerarquía, donde los tipos juegan el papel del tipo de tipos, pero no iría tan lejos como para decir que los tipos son metamatemáticos. Todo sucede al mismo nivel; este es especialmente el caso cuando se trata de tipos dependientes .
Existe un vínculo muy fuerte entre los tipos y la teoría de categorías. De hecho, Bob Harper (citando a Lambek) dice que la lógica, los idiomas (donde residen los tipos) y las categorías forman una trinidad santa . Citando:
Debe consultar la correspondencia de Curry-Howard para ver el vínculo entre los lenguajes de lógica y programación (los tipos son proposiciones) y las categorías cerradas cartesianas , para ver la relación entre la teoría de categorías.
fuente