Es bien sabido que los tipos en un lenguaje de programación dado forman una categoría, basada en Set, con sus funciones como morfismos.
También es bien sabido que cualquier programa es básicamente una prueba en lógica constructiva: el resultado se denomina correspondencia Curry-Howard y se utiliza en programas de comprobación de teoremas como Coq y Agda.
¿No constituye entonces la lógica constructiva una categoría por derecho propio? ¿Los objetos son aserciones lógicas, los morfismos son implicaciones y Verdadero y Falso son, como en Coq, el objeto inicial y el objeto terminal? Y si es así, ¿por qué no está definida esa categoría en ninguna parte?
Lo pregunto porque me parece raro que mucha gente hable de la conexión entre la lógica y la teoría de categorías, pero que yo sepa nadie la formaliza.