In
category theory, a category is
cartesian closed if, roughly speaking, any
morphism defined on a
product of two objects can be naturally identified with a morphism defined on one of the factors. These categories are particularly important in
mathematical logic and the theory of
programming, in that they provide a natural setting for
lambda calculus. For generalizations of this notion to
monoidal categories, see
closed monoidal category.
The category C is called Cartesian closed if and only if it satisfies the following three properties
The first two conditions can be combined to the single requirement that any finite (possibly empty) family of objects of C admit a product in C, because of the natural associativity of the categorical product and because the empty product in a category is the terminal object of that category.
The third condition is equivalent to the requirement that the functor –×Y (i.e. the functor from C to C that maps objects X to X×Y and morphisms f to f×idY) has a right adjoint, usually denoted –Y, for all objects Y in C. For small categories, this can be expressed by the existence of a bijection between the hom-sets