|
|
Line 1: |
Line 1: |
| In [[category theory]], a category is '''cartesian closed''' if, roughly speaking, any [[morphism]] defined on a [[product (category theory)|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 their [[internal language]] is the [[simply typed lambda calculus]]. They are generalized by [[closed monoidal category|closed monoidal categories]], whose internal language, [[linear type system]]s, are suitable for both [[quantum computation|quantum]] and classical computation.<ref>John c. Baez and Mike Stay, "[http://math.ucr.edu/home/baez/rosetta/rose3.pdf Physics, Topology, Logic and Computation: A Rosetta Stone]", (2009) [http://arxiv.org/abs/0903.0340/ ArXiv 0903.0340] in ''New Structures for Physics'', ed. Bob Coecke, ''Lecture Notes in Physics'' vol. '''813''', Springer, Berlin, 2011, pp. 95-174.</ref>
| | Hello! <br>My name is Kandy and I'm a 29 years old boy from Australia.<br><br>Feel free to surf to my page: [http://www.despicablemegames.info/profile/ernathan FIFA 15 coin hack] |
| | |
| == Definition ==
| |
| The category ''C'' is called '''Cartesian closed'''<ref>S. Mac Lane, "Categories for the Working Mathematician"</ref> [[if and only if]] it satisfies the following three properties:
| |
| * It has a [[terminal object]].
| |
| * Any two objects ''X'' and ''Y'' of ''C'' have a [[product (category theory)|product]] ''X''×''Y'' in ''C''.
| |
| * Any two objects ''Y'' and ''Z'' of ''C'' have an [[exponential object|exponential]] ''Z''<sup>''Y''</sup> in ''C''.
| |
| | |
| The first two conditions can be combined to the single requirement that any finite (possibly empty) family of objects of ''C'' admit a [[product (category theory)|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 φ to φ×id<sub>''Y''</sub>) has a [[Adjoint functors|right adjoint]], usually denoted –<sup>''Y''</sup>, for all objects ''Y'' in ''C''.
| |
| For locally small categories, this can be expressed by the existence of a [[bijection]] between the [[hom-set]]s
| |
| :<math>\mathrm{Hom}(X\times Y,Z) \cong \mathrm{Hom}(X,Z^Y)</math>
| |
| which is [[natural transformation|natural]] in both ''X'' and ''Z''.
| |
| | |
| If a category is such that all its [[comma category#Category of objects over A|slice categories]] are cartesian closed, then it is called '''locally cartesian closed'''.
| |
| | |
| == Examples ==
| |
| Examples of cartesian closed categories include:
| |
| * The category '''Set''' of all [[Set (mathematics)|sets]], with [[function (mathematics)|function]]s as morphisms, is cartesian closed. The product ''X''×''Y'' is the cartesian product of ''X'' and ''Y'', and ''Z''<sup>''Y''</sup> is the set of all functions from ''Y'' to ''Z''. The adjointness is expressed by the following fact: the function ''f'' : ''X''×''Y'' → ''Z'' is naturally identified with the [[currying|curried]] function ''g'' : ''X'' → ''Z''<sup>''Y''</sup> defined by ''g''(''x'')(''y'') = ''f''(''x'',''y'') for all ''x'' in ''X'' and ''y'' in ''Y''.
| |
| * The category of [[finite set|finite]] sets, with functions as morphisms, is cartesian closed for the same reason.
| |
| * If ''G'' is a [[group (mathematics)|group]], then the category of all [[group action|''G''-sets]] is cartesian closed. If ''Y'' and ''Z'' are two ''G''-sets, then ''Z''<sup>''Y''</sup> is the set of all functions from ''Y'' to ''Z'' with ''G'' action defined by (''g''.''F'')(''y'') = ''g''.(F(''g''<sup>''-1''</sup>.y)) for all ''g'' in ''G'', ''F'':''Y'' → ''Z'' and ''y'' in ''Y''.
| |
| * The category of finite ''G''-sets is also cartesian closed.
| |
| * The category '''Cat''' of all small categories (with functors as morphisms) is cartesian closed; the exponential ''C''<sup>''D''</sup> is given by the [[functor category]] consisting of all functors from ''D'' to ''C'', with [[natural transformation]]s as morphisms.
| |
| * If ''C'' is a [[small category]], then the [[functor category]] '''Set'''<sup>''C''</sup> consisting of all covariant functors from ''C'' into the category of sets, with [[natural transformation]]s as morphisms, is cartesian closed. If ''F'' and ''G'' are two functors from ''C'' to '''Set''', then the exponential ''F''<sup>''G''</sup> is the functor whose value on the object ''X'' of ''C'' is given by the set of all natural transformations from (''X'',−) × ''G'' to ''F''.
| |
| ** The earlier example of ''G''-sets can be seen as a special case of functor categories: every group can be considered as a one-object category, and ''G''-sets are nothing but functors from this category to '''Set'''
| |
| ** The category of all [[graph theory|directed graphs]] is cartesian closed; this is a functor category as explained under [[functor category]].
| |
| * In [[algebraic topology]], cartesian closed categories are particularly easy to work with. Neither the category of [[topological space]]s with [[continuous function (topology)|continuous]] maps nor the category of [[manifold|smooth manifolds]] with smooth maps is cartesian closed. Substitute categories have therefore been considered: the category of [[compactly generated Hausdorff space]]s is cartesian closed, as is the category of [[Frölicher space]]s.
| |
| * In [[order theory]], [[complete partial order]]s (''cpo''s) have a natural topology, the [[Scott topology]], whose continuous maps do form a cartesian closed category (that is, the objects are the cpos, and the morphisms are the [[Scott continuous]] maps). Both [[currying]] and ''[[apply]]'' are continuous functions in the Scott topology, and currying, together with apply, provide the adjoint.<ref>H.P. Barendregt, ''The Lambda Calculus'', (1984) North-Holland ISBN 0-444-87508-5 ''(See theorem 1.2.16)''</ref>
| |
| * A [[Heyting algebra]] is a Cartesian closed (bounded) [[lattice (order)|lattice]]. An important example arises from [[topological space]]s. If ''X'' is a [[topological space]], then the [[open set]]s in ''X'' form the objects of a category O(''X'') for which there is a unique morphism from ''U'' to ''V'' if ''U'' is a subset of ''V'' and no morphism otherwise. This [[poset]] is a cartesian closed category: the "product" of ''U'' and ''V'' is the intersection of ''U'' and ''V'' and the exponential ''U''<sup>''V''</sup> is the [[interior (topology)|interior]] of ''U''∪(''X''\''V'').
| |
| | |
| The following categories are ''not'' cartesian closed:
| |
| * The category of all [[vector space]]s over some fixed [[field (mathematics)|field]] is not cartesian closed; neither is the category of all [[dimension of a vector space|finite-dimensional]] vector spaces. This is because the [[tensor product]] is not a [[product (category theory)|category-theoretic product]]; in particular, the act of tensoring destroys the projection morphisms. They are, however, symmetric [[monoidal closed categories]]: the set of linear transformations between two vector spaces forms another vector space, so they are closed. The tensor product does have a [[right adjoint]], a mapping object, which is the set of linear maps between vector spaces; however, it is not properly called the [[exponential object]].
| |
| * The category of [[abelian group]]s is not cartesian closed, for the same reason.
| |
| | |
| == Applications ==
| |
| In cartesian closed categories, a "function of two variables" (a morphism ''f'':''X''×''Y'' → ''Z'') can always be represented as a "function of one variable" (the morphism λ''f'':''X'' → ''Z''<sup>''Y''</sup>). In [[computer science]] applications, this is known as [[currying]]; it has led to the realization that [[simply-typed lambda calculus]] can be interpreted in any cartesian closed category.
| |
| | |
| The [[Curry-Howard correspondence#Curry–Howard–Lambek correspondence|Curry-Howard-Lambek correspondence]] provides a deep isomorphism between intuitionistic logic, simply-typed lambda calculus and cartesian closed categories.
| |
| | |
| Certain cartesian closed categories, the [[topos|topoi]], have been proposed as a general setting for mathematics, instead of traditional [[set theory]].
| |
| | |
| The renowned computer scientist [[John Backus]] has advocated a variable-free notation, or [[Function-level programming]], which in retrospect bears some similarity to the [[internal language]] of cartesian closed categories. [[Categorical Abstract Machine Language|CAML]] is more consciously modelled on cartesian closed categories.
| |
| | |
| == Equational theory ==
| |
| In every cartesian closed category (using exponential notation), (''X''<sup>''Y''</sup>)<sup>''Z''</sup> and (''X''<sup>''Z''</sup>)<sup>''Y''</sup> are [[isomorphic]] for all objects ''X'', ''Y'' and ''Z''. We write this as the "equation"
| |
| | |
| :(''x''<sup>''y''</sup>)<sup>''z''</sup> = (''x''<sup>''z''</sup>)<sup>''y''</sup>.
| |
| | |
| One may ask what other such equations are valid in all cartesian closed categories. It turns out that all of them follow logically from the following axioms:<ref>S. Soloviev. "Category of Finite Sets and Cartesian Closed Categories", Journal of Soviet Mathematics, 22, 3 (1983)</ref>
| |
| *''x''×(''y''×''z'') = (''x''×''y'')×''z''
| |
| *''x''×''y'' = ''y''×''x''
| |
| *''x''×1 = ''x'' (here 1 denotes the terminal object of ''C'')
| |
| *1<sup>''x''</sup> = 1
| |
| *''x''<sup>1</sup> = ''x''
| |
| *(''x''×''y'')<sup>''z''</sup> = ''x''<sup>''z''</sup>×''y''<sup>''z''</sup>
| |
| *(''x''<sup>''y''</sup>)<sup>''z''</sup> = ''x''<sup>(''y''×''z'')</sup>
| |
| | |
| [[Bicartesian closed category|Bicartesian closed categories]] extend cartesian closed categories with binary [[coproduct]]s and an [[initial object]], with products distributing over coproducts. Their equational theory is extended with the following axioms:
| |
| *''x'' + ''y'' = ''y'' + ''x''
| |
| *(''x'' + ''y'') + ''z'' = ''x'' + (''y'' + ''z'')
| |
| *''x''(''y'' + ''z'') = ''xy'' + ''xz''
| |
| *''x''<sup>(''y'' + ''z'')</sup> = ''x<sup>y</sup>x<sup>z</sup>''
| |
| *0 + ''x'' = ''x''
| |
| *''x''×0 = 0
| |
| *''x''<sup>0</sup> = 1
| |
| | |
| Note however that the above list is not complete; type isomorphism in the free BCCC is not finitely axiomatizable, and its decidability is still an open problem.<ref>Fiore, Cosmo, and Balat. Remarks on Isomorphisms in Typed Lambda Calculi with Empty and Sum Types, "[http://www.dicosmo.org/Papers/lics02.pdf]"</ref>
| |
| | |
| ==References==
| |
| <references/>
| |
| | |
| {{nlab|id=cartesian+closed+category|title=Cartesian closed category}}
| |
| | |
| [[Category:Closed categories]]
| |
| [[Category:Lambda calculus]]
| |