Una categoría cerrada cartesiana es una categoría que admite curry , es decir, contiene para cada clase de morfismos algún objeto que la represente. Las categorías cerradas cartesianas ocupan, en cierto sentido, una posición intermedia entre las categorías abstractas y los conjuntos , ya que permiten operar correctamente con funciones , pero no permiten, por ejemplo, operar con subobjetos.
Desde el punto de vista de la programación , las categorías cerradas cartesianas implementan la encapsulación de argumentos de función: cada argumento está representado por un objeto de categoría y se utiliza como una caja negra . Al mismo tiempo, la expresividad de las categorías cerradas cartesianas es suficiente para operar con funciones en la forma adoptada en el cálculo λ . Esto los convierte en modelos categóricos naturales del cálculo λ tipado .
Una categoría C se denomina cerrada cartesiana [1] si cumple tres condiciones:
Una categoría tal que para cualquiera de sus objetos la categoría de objetos sobre ella es cartesiana cerrada se denomina localmente cartesiana cerrada .
En una categoría cerrada cartesiana, una "función de dos variables" (morfismo f : X × Y → Z ) siempre se puede representar como una "función de una variable" (morfismo λ f : X → Z Y ). En programación, esta operación se conoce como curry ; esto permite que el cálculo lambda simplemente tipeado se interprete en cualquier categoría cerrada cartesiana. Las categorías cerradas cartesianas sirven como modelo de categoría para el cálculo tipificado y la lógica combinatoria .
La correspondencia de Curry-Howard proporciona un isomorfismo entre la lógica intuicionista, el cálculo lambda simplemente tipificado y las categorías cerradas cartesianas. Ciertas categorías cartesianas cerradas ( topoi ) se han propuesto como los principales objetos de fundamentos alternativos de las matemáticas en lugar de la teoría de conjuntos tradicional .