Al leer la respuesta de Uday Reddy a ¿Cuál es la relación entre los functores en SML y la teoría de categorías? Estados Uday
La teoría de categorías aún no sabe cómo manejar las funciones de orden superior. Algún día lo hará.
Como pensaba que la teoría de categorías podía servir como base para las matemáticas, entonces debería ser posible derivar todas las funciones matemáticas y de orden superior.
Entonces, ¿qué se entiende por teoría de categorías aún no sabe cómo tratar con las funciones de orden superior? ¿Es válido considerar la teoría de categorías como base para las matemáticas?
functional-programming
category-theory
Guy Coder
fuente
fuente
Respuestas:
El problema con las funciones de orden superior es lo suficientemente simple como para indicar.
Un constructor de tipos como no es un functor. Debería haber sido.T( X) = [ X→ X]
Si lees el documento de teoría de categoría original de Eilenberg y MacLane , (PDF) las intuiciones que presentan cubren esos casos. Pero su teoría no lo hace. ¡Fue un gran papel para 1945! Pero hoy necesitamos más.
La reacción de los teóricos de la categoría a estos problemas es un poco desconcertante. Actúan como si las operaciones de orden superior formaran una idea de informática; no tienen ninguna consecuencia para las matemáticas. Si eso es así, entonces una base de matemáticas no sería lo suficientemente buena para una base de informática.
Pero no lo creo en serio. Creo que las funciones de orden superior también serían bastante importantes para las matemáticas. Pero no han sido seriamente explorados. Tengo la esperanza de que, algún día, se explorarán y se realizarán las limitaciones de la teoría de categorías.
fuente
[Esta segunda respuesta presenta un resumen de cómo podría ser una "Categoría Teoría 2.0", que se ocupa de las funciones de orden superior correctamente.]
Hemos sabido durante mucho tiempo cómo lidiar con funciones de orden superior al razonar sobre ellas.
Cuando una estructura algebraica tiene operaciones de orden superior, los homomorfismos no funcionan. Debemos usar relaciones lógicas en su lugar. En otras palabras, debemos pasar de " estructura de preservación de funciones " a " estructura de preservación de relaciones ".
Para hablar de transformaciones "uniformes" o "dadas simultáneamente" en tipos de orden superior, la naturalidad no funciona. Debemos usar la parametridad relacional en su lugar. En otras palabras, debemos pasar de "familias que preservan todos los morfismos " a "familias que preservan todas las relaciones lógicas ".
Una introducción rápida a estos problemas se encuentra en la sección de Peter O'Hearn sobre "Parametricidad relacional" en dominios y semántica denotacional: historia, logros y problemas abiertos (CiteSeerX) .
El primer intento de construir una "Categoría Teoría 2.0" está en O'Hearn y Tennent Parametricity and Local Variables (CiteSeerX) .
Tesis doctoral de Brian Dunphy: la parametricidad como una noción de uniformidad en los gráficos reflexivos (CiteSeerX) se basa en su marco y axiomatiza la estructura relacional necesaria para obtener resultados de parametricidad. Recomendaría la tesis de Dunphy para obtener una buena visión general de todos los problemas.
En aras de la exhaustividad, también debería mencionar la tesis doctoral de Claudio Hermida: Fibraciones, predicados lógicos e indeterminados (PDF) , que fue el primero en estudiar relaciones lógicas en un entorno teórico de categoría, pero su tratamiento es quizás demasiado técnico para la mayoría de las personas.
También podría agregar que el razonamiento sobre el estado es donde las funciones de orden superior aparecen prominentemente. Los teóricos de los autómatas fueron los primeros en reconocer que los homomorfismos no funcionan correctamente, en un documento histórico llamado Productos de autómatas y el problema de la cobertura . Usaron términos como "homomorfismos débiles" y "relaciones de cobertura" para referirse a las relaciones lógicas. A su debido tiempo, se usaron términos como "simulación" y "bisimulación" para referirse a ellos. El artículo de la encuesta de Davide Sangiorgi: Sobre los orígenes de la bisimulación y la coinducción abarca toda esta historia temprana y más.
La necesidad de razonamiento relacional surge repetidamente en el razonamiento sobre el estado, en particular la programación imperativa . Muy pocas personas notan que el humilde "punto y coma" es una operación de orden superior. Por lo tanto, no puede despegar pensando en programas imperativos sin saber cómo manejar las funciones de orden superior. Seguimos ignorando los problemas de programación estatal e imperativa en la creencia errónea de que las matemáticas tienen todas las respuestas. Entonces, si los matemáticos no entienden el estado, ¡no debe ser bueno! Nada mas lejos de la verdad. El estado está en el corazón de la informática. ¡Avanzaremos la ciencia en general al mostrarle a la gente cómo lidiar con el estado!
fuente