{"id":6613,"date":"2023-04-20T21:34:18","date_gmt":"2023-04-20T19:34:18","guid":{"rendered":"https:\/\/projects.lsv.ens-paris-saclay.fr\/topology\/?page_id=6613"},"modified":"2023-05-15T07:42:42","modified_gmt":"2023-05-15T05:42:42","slug":"topological-functors-ii-the-cartesian-closed-category-of-c-maps","status":"publish","type":"page","link":"https:\/\/projects.lsv.ens-paris-saclay.fr\/topology\/?page_id=6613","title":{"rendered":"Topological Functors II: the Cartesian-closed category of C-maps"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">A <a href=\"https:\/\/projects.lsv.ens-paris-saclay.fr\/topology\/?page_id=4133\">while back<\/a>, I gave an introduction to topological functors, and I promised I would post one or more followups.  So here we are.  I will explain how the construction of the Cartesian-closed category of <strong>C<\/strong>-generated topological spaces due to M. Escard\u00f3, J. Lawson and A. Simpson [3] is really a construction that generalizes way beyond topological spaces, to all (well-fibered) topological constructs [2, Section 3].  I applied it to streams and prestreams in [2], but not everyone may be interested in the latter, while knowing that the idea of <strong>C<\/strong>-generation adapts to general topological functors is probably more interesting.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I will definitely not explain the whole construction.  It turns out that this would be too much.  I will concentrate on the core of the construction, which generalizes the first step of Escard\u00f3, Lawson and Simpson: the construction of a Cartesian-closed category <strong>Map<\/strong><span style=\"text-decoration: underline;\"><sub>C<\/sub><\/span>, built from a so-called strongly productive class <span style=\"text-decoration: underline;\">C<\/span> of objects of a category <strong>C<\/strong>, where <strong>C<\/strong> is the domain of a so-called well-fibered topological construct <em>U<\/em>.  The Escard\u00f3-Lawson-Simpson construction is the special case where <strong>C<\/strong> is the category <strong>Top<\/strong> of topological spaces and <em>U<\/em> is the forgetful functor to <strong>Set<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">(Update, May 15th, 2023: I have prepared a video on this subject, to be presented at the seminar on categorical topology at the University of Puebla, Mexico, see <a href=\"https:\/\/projects.lsv.ens-paris-saclay.fr\/topology\/?page_id=6694\" data-type=\"page\" data-id=\"6694\">this page<\/a>.  The slides and the video(s) are at the bottom.  This is probably better for an introduction to the topics on this page.  But continue reading if you wish to understand the technical details, too.)<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">A refresher on topological functors<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">What you should keep in mind is that the paradigmatic example of a topological functor is the forgetful functor from the category <strong>Top<\/strong> of topological spaces to the category <strong>Set<\/strong> of sets.  (I will call this the <em>standard example<\/em>.)  The actual definition is more complicated: a functor <em>U<\/em> : <strong>C<\/strong> \u2192 <strong>D<\/strong> is <em>topological<\/em> if and only if it is faithful, amnestic, and is such that every <em>U<\/em>-source has a <em>U<\/em>-initial lift.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Before I start, you may safely assume that <strong>D<\/strong>=<strong>Set<\/strong>.  In any case, the construction I want to explain here eventually only works in that case.  A topological functor <em>U<\/em> from a category <strong>C<\/strong> to <strong>Set<\/strong> is called a topological <em>construct<\/em>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Alright.  Being <em>faithful<\/em> is easy to explain.  That just means that <em>U<\/em> is injective on hom sets, namely that if two morphisms <em>f<\/em>, <em>g<\/em> : <em>X<\/em> \u2192 <em>Y<\/em> in <strong>C<\/strong> (with the <em>same<\/em> domain and the <em>same<\/em> codomain) are such that <em>U<\/em>(<em>f<\/em>)=<em>U<\/em>(<em>g<\/em>), then <em>f<\/em>=<em>g<\/em>.  In the standard example, any two continuous maps between the same spaces that are equal as ordinary functions between the underlying sets&#8230; are equal.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Given two objects <em>X<\/em> and <em>Y<\/em> of <strong>C<\/strong>, any morphism <em>g<\/em> from <em>U<\/em>(<em>X<\/em>) to <em>U<\/em>(<em>Y<\/em>) in <strong>D<\/strong> either <em>lifts<\/em> to a morphism <em>\u011d<\/em> from <em>X<\/em> to <em>Y<\/em> in <strong>C<\/strong>, meaning that <em>U<\/em>(<em>\u011d<\/em>)=<em>g<\/em>, or it does not.  Since <em>U<\/em> is faithful, if the lift <em>\u011d<\/em> exists, it is unique.  In the standard example, a set function <em>g<\/em> between two topological spaces has a lift if and only if it is continuous, and then <em>\u011d<\/em> is <em>g<\/em> itself, seen as a continuous map.  Hence, and to avoid some pedantry, I will simply write the lift <em>\u011d<\/em>&#8230; as <em>g<\/em>.  I will in fact avoid talking about lifts altogether, and I will simply say that <em>g<\/em> <em>is<\/em> a <strong>C<\/strong>-morphism from <em>X<\/em> to <em>Y<\/em>, instead of saying that <em>g<\/em> lifts to one.  (And I am tempted to even say &#8220;<strong>C<\/strong>-continuous&#8221;, but maybe it is enough if you think of <strong>C<\/strong> as being some form of stand-in for <strong>C<\/strong>ontinuous.)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The condition &#8220;<em>every U-source has a U-initial lift<\/em>&#8221; means the following.  A <em>U<\/em>-source is a family of morphisms <em>g<sub>i<\/sub><\/em> : <em>E<\/em> \u2192 <em>U<\/em>(<em>Y<sub>i<\/sub><\/em>), <em>i<\/em> \u2208 <em>I<\/em>, with common domain <em>E<\/em>.  (Note that each <strong>C<\/strong>-object <em>Y<sub>i<\/sub><\/em> is part of the datum, not just <em>U<\/em>(<em>Y<sub>i<\/sub><\/em>).  In the standard example, this means we are given <em>topological spaces<\/em> <em>Y<sub>i<\/sub><\/em>, not just their underlying sets.)  A <em>lift<\/em> of that <em>U<\/em>-source is a <strong>C<\/strong>-object <em>X<\/em> such that <em>U<\/em>(<em>X<\/em>)=<em>E<\/em> (in the standard example, <em>X<\/em> must be <em>E<\/em> with some topology) that turns every <em>g<sub>i<\/sub><\/em> into a <strong>C<\/strong>-morphism from <em>X<\/em> to <em>Y<sub>i<\/sub><\/em>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This lift is <em>U<\/em>-initial if and only if, in a sense, <em>X<\/em> is the coarsest <strong>C<\/strong>-object such that <em>U<\/em>(<em>X<\/em>)=<em>E<\/em> and making every <em>g<sub>i<\/sub><\/em> into a <strong>C<\/strong>-morphism.  More formally, <em>U<\/em>-initiality means that for every <strong>C<\/strong>-object <em>Z<\/em>,  an arbitrary <strong>D<\/strong>-morphism <em>h<\/em> : <em>U<\/em>(<em>Z<\/em>) \u2192 <em>E<\/em> is in fact a <strong>C<\/strong>-morphism from <em>Z<\/em> to <em>X<\/em> if and only if <em>g<sub>i<\/sub><\/em> o <em>h<\/em> is a <strong>C<\/strong>-morphism from <em>Z<\/em> to <em>Y<sub>i<\/sub><\/em> for every <em>i<\/em> in <em>I<\/em>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Speaking of &#8220;<strong>C<\/strong>-objects <em>X<\/em> such that <em>U<\/em>(<em>X<\/em>)=<em>E<\/em>&#8221; is a bit awkward.  It is traditional to talk about those <strong>C<\/strong>-objects as those being in the <em>fiber<\/em> of <em>E<\/em>.  In the standard example, the fiber of a set <em>E<\/em> consists of those topological spaces whose points are those of <em>E<\/em>.  Therefore, the fiber of <em>E<\/em> is really another way of talking about the collection of topologies on <em>E<\/em> (in the standard example).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Topologies are ordered by &#8220;coarser than&#8221; and &#8220;finer than&#8221;, and the categorical analogue is to say that given two <strong>C<\/strong>-objects <em>X<\/em> and <em>Y<\/em> in the fiber of the same <strong>D<\/strong>-object <em>E<\/em>, <em>X<\/em> is <em>finer than Y<\/em> (in notation, <em>X<\/em>\u2264<em>Y<\/em>) if and only if the identity morphism from <em>E<\/em> to <em>E<\/em> is a <strong>C<\/strong>-morphism from <em>X<\/em> to <em>Y<\/em>.  Naturally, <em>Y<\/em> is <em>coarser than X<\/em> if and only if <em>X<\/em> is finer than <em>Y<\/em>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Then <em>U<\/em> is <em>amnestic<\/em> if and only if \u2264 is antisymmetric on each fiber.  In the standard example, this means that if a topology is both coarser and finer than another, then they are equal.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In the final paragraphs of <a href=\"https:\/\/projects.lsv.ens-paris-saclay.fr\/topology\/?page_id=4133\" data-type=\"page\" data-id=\"4133\">part I<\/a>, I had given a few examples of topological functors, including the forgetful functor from the category <strong>Pre<\/strong> of preordered sets to <strong>Set<\/strong>, as well as functors from categories of streams or prestreams to <strong>Top<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">We will need a final property that not all topological functors have.  A functor <em>U<\/em> : <strong>C<\/strong> \u2192 <strong>D<\/strong> is <em>well-fibered<\/em> if and only if:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>each fiber is <em>small<\/em>, namely for every <strong>D<\/strong>-object <em>E<\/em>, the collection of <strong>C<\/strong>-objects in the fiber of <em>E<\/em> is a set;<\/li>\n\n\n\n<li>and it has <em>discrete terminal objects<\/em>, meaning that <strong>D<\/strong> has a terminal object <strong>1<\/strong> (the one element set in the standard example, or more generally if <strong>D<\/strong>=<strong>Set<\/strong>), and that there is exactly <em>one<\/em> object in its fiber (in the standard example, there is only one topology on a set with just one element).<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Probes<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">I will follow the same path as in Section 5.6 of the <a href=\"https:\/\/www.cambridge.org\/gb\/knowledge\/isbn\/item7069109\/Non-Hausdorff%20Topology%20and%20Domain%20Theory\/?site_locale=en_GB\">book<\/a>, or Section 3 of [2].  Not much of either, though!  We will only imitate results of Section 5.6 of the book until and including Theorem 5.6.4, and Section 3 of [2] until and including Theorem 1.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In the sequel, <em>U<\/em> : <strong>C<\/strong> \u2192 <strong>D<\/strong> will be a fixed topological functor, and <span style=\"text-decoration: underline;\">C<\/span> will be a class of objects of <strong>C<\/strong>.  At some point, I will specialize this and require <strong>D<\/strong> to be <strong>Set<\/strong>, but this is not needed yet.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A <span style=\"text-decoration: underline;\">C<\/span><em>-probe<\/em> is any <strong>C<\/strong>-morphism <em>k<\/em> : <em>C<\/em> \u2192 <em>X<\/em> whose domain is an object <em>C<\/em> in <span style=\"text-decoration: underline;\">C<\/span>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Let us define a <span style=\"text-decoration: underline;\">C<\/span>&#8211;<em>map<\/em> from <em>X<\/em> to <em>Y<\/em> in <strong>C<\/strong> as any morphism <em>g<\/em> : <em>U<\/em>(<em>X<\/em>) \u2192 <em>U<\/em>(<em>Y<\/em>) in <strong>D<\/strong> such that <em>g<\/em> o <em>k<\/em> is a <strong>C<\/strong>-morphism for every <span style=\"text-decoration: underline;\">C<\/span>-probe <em>k<\/em> : <em>C<\/em> \u2192 <em>X<\/em> with codomain <em>X<\/em>.  That may seem to fail to type-check: I really mean that <em>g<\/em> o <em>U<\/em>(<em>k<\/em>), which is a <strong>D<\/strong>-morphism from <em>U<\/em>(<em>C<\/em>) to <em>U<\/em>(<em>Y<\/em>), should lift to a <strong>C<\/strong>-morphism from <em>C<\/em> to <em>Y<\/em>.  But the formal definition is a bit heavy; in the standard example, that a set function <em>g<\/em> is a <span style=\"text-decoration: underline;\">C<\/span>-map means that <em>g<\/em> o <em>k<\/em> is continuous for every <span style=\"text-decoration: underline;\">C<\/span>-probe <em>k<\/em> with codomain <em>X<\/em>, and we don&#8217;t care about inserting <em>U<\/em> here and there.  I will still try to mention <em>U<\/em> whenever that is not too heavy.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">All <strong>C<\/strong>-morphisms are <span style=\"text-decoration: underline;\">C<\/span>-maps, or rather, every <strong>C<\/strong>-morphism <em>g<\/em> : <em>X<\/em> \u2192 <em>Y<\/em> induces a <span style=\"text-decoration: underline;\">C<\/span>-map <em>U<\/em>(<em>g<\/em>).  Indeed, for every <span style=\"text-decoration: underline;\">C<\/span>-probe <em>k<\/em> : <em>C<\/em> \u2192 <em>X<\/em>, <em>g<\/em> o <em>k<\/em> is a <strong>C<\/strong>-morphism, being the composition of two <strong>C<\/strong>-morphisms.  Conversely, not all <span style=\"text-decoration: underline;\">C<\/span>-maps are <strong>C<\/strong>-morphisms, and that is the point.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">There is a category <strong>Map<\/strong><span style=\"text-decoration: underline;\"><sub>C<\/sub><\/span> whose objects are those of <strong>C<\/strong>, and whose morphisms are the <span style=\"text-decoration: underline;\">C<\/span>-maps.  This is a category that is a priori larger than <strong>C<\/strong>: although it has the same objects, it has more morphisms.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Products in <strong>Map<\/strong><span style=\"text-decoration: underline;\"><sub>C<\/sub><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">An amazing thing about topological functors is that they preserve and reflect both limits and colimits.  I have discussed that in the <a href=\"https:\/\/projects.lsv.ens-paris-saclay.fr\/topology\/?page_id=4133\" data-type=\"page\" data-id=\"4133\">first post <\/a>on the subject.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Hence, in particular, if <strong>D<\/strong> has all finite products, then <strong>C<\/strong> has all finite products, too; the product of finitely may objects <em>X<\/em><sub>1<\/sub>, &#8230;, <em>X<sub>n<\/sub><\/em> in <strong>C<\/strong> is obtained by computing the product <em>U<\/em>(<em>X<\/em><sub>1<\/sub>) \u00d7 &#8230; \u00d7 <em>U<\/em>(<em>X<sub>n<\/sub><\/em>) in <strong>D<\/strong>, and then taking the coarsest object <em>X<\/em> in the fiber of the latter that turns all the projections into <strong>C<\/strong>-morphisms.  (In the standard example, this means giving the set <em>U<\/em>(<em>X<\/em><sub>1<\/sub>) \u00d7 &#8230; \u00d7 <em>U<\/em>(<em>X<sub>n<\/sub><\/em>) the coarsest topology that makes all projections continuous, namely the product topology.)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I will simply write <em>X<\/em><sub>1<\/sub> \u00d7 &#8230; \u00d7 <em>X<sub>n<\/sub><\/em> for the resulting product in <strong>C<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Projections and pairings of <strong>C<\/strong>-morphisms are then computed in <strong>D<\/strong>, and are automatically <strong>C<\/strong>-morphisms.  More precisely, if <em>g<\/em><sub>1<\/sub>, &#8230;, <em>g<sub>n<\/sub><\/em> are <strong>C<\/strong>-morphisms with the same domain in <strong>C<\/strong>, then their pairing \u27e8<em>g<\/em><sub>1<\/sub>, &#8230;, <em>g<sub>n<\/sub><\/em>\u27e9 in <strong>C<\/strong> is obtained by computing the pairing \u27e8<em>U<\/em>(<em>g<\/em><sub>1<\/sub>), &#8230;, <em>U<\/em>(<em>g<sub>n<\/sub><\/em>)\u27e9 in <strong>D<\/strong>, and realizing that this lifts to a unique <strong>C<\/strong>-morphism; we write it as \u27e8<em>g<\/em><sub>1<\/sub>, &#8230;, <em>g<sub>n<\/sub><\/em>\u27e9, so that <em>U<\/em>(\u27e8<em>g<\/em><sub>1<\/sub>, &#8230;, <em>g<sub>n<\/sub><\/em>\u27e9) = \u27e8<em>U<\/em>(<em>g<\/em><sub>1<\/sub>), &#8230;, <em>U<\/em>(<em>g<sub>n<\/sub><\/em>)\u27e9 and then it is easy to check that the equations defining products are satisfied, namely: \u03c0<em><sub>i<\/sub><\/em> o \u27e8<em>g<\/em><sub>1<\/sub>, &#8230;, <em>g<sub>n<\/sub><\/em>\u27e9 = <em>g<\/em><sub><em>i<\/em><\/sub> (1\u2264<em>i<\/em>\u2264<em>n<\/em>), \u27e8<em>g<\/em><sub>1<\/sub>, &#8230;, <em>g<sub>n<\/sub><\/em>\u27e9 o <em>h<\/em> = \u27e8<em>g<\/em><sub>1<\/sub> o <em>h<\/em>, &#8230;, <em>g<sub>n<\/sub><\/em> o <em>h<\/em>\u27e9, and \u27e8\u03c0<sub>1<\/sub>, &#8230;, \u03c0<em><sub>n<\/sub><\/em>\u27e9 = id, where \u03c0<em><sub>i<\/sub><\/em> is projection onto the <i>i<\/i>th component.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In the sequel, I will drop mentions of <em>U<\/em>, as they tend to obscure the message, and therefore I will write \u27e8<em>g<\/em><sub>1<\/sub>, &#8230;, <em>g<sub>n<\/sub><\/em>\u27e9 both for pairing in <strong>C<\/strong> and in <strong>D<\/strong>, and I will confuse any <strong>C<\/strong>-morphism <em>g<\/em> with the corresponding <strong>D<\/strong>-morphism <em>U<\/em>(<em>g<\/em>)\u2014as in the standard example, where we take continuous maps and considering them as set functions without bothering to mention the conversion from the former to the latter.  If you have any doubts about the correctness of the arguments, I refer you to [2, Section 3], where everything is done formally.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Lemma A.<\/strong>  If <strong>D<\/strong> has all finite products, then so has <strong>Map<\/strong><span style=\"text-decoration: underline;\"><sub>C<\/sub><\/span>, and they are computed as in <strong>C<\/strong>.  In other words, given finitely may objects <em>X<\/em><sub>1<\/sub>, &#8230;, <em>X<sub>n<\/sub><\/em> in <strong>Map<\/strong><span style=\"text-decoration: underline;\"><sub>C<\/sub><\/span> (namely, in <strong>C<\/strong>), their product <em>X<\/em><sub>1<\/sub> \u00d7 &#8230; \u00d7 <em>X<sub>n<\/sub><\/em> in <strong>C<\/strong> is also their product in <strong>Map<\/strong><span style=\"text-decoration: underline;\"><sub>C<\/sub><\/span>, and the projection maps and pairing maps are <span style=\"text-decoration: underline;\">C<\/span>-maps.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Proof.<\/em>  The projections are <span style=\"text-decoration: underline;\">C<\/span>-maps by construction, and the equations defining products are automatically satisfied.  We only have to show that given <span style=\"text-decoration: underline;\">C<\/span>-maps <em>g<\/em><sub>1<\/sub>, &#8230;, <em>g<sub>n<\/sub><\/em> from a <strong>C<\/strong>-object <em>Z<\/em> to <em>X<\/em><sub>1<\/sub>, &#8230;, <em>X<sub>n<\/sub><\/em> respectively, their pairing \u27e8<em>g<\/em><sub>1<\/sub>, &#8230;, <em>g<sub>n<\/sub><\/em>\u27e9 in <strong>C<\/strong> is a <span style=\"text-decoration: underline;\">C<\/span>-map.  Let <em>k<\/em> be any <span style=\"text-decoration: underline;\">C<\/span>-probe from, say, <em>C<\/em>, to <em>Z<\/em>.  We need to show that \u27e8<em>g<\/em><sub>1<\/sub>, &#8230;, <em>g<sub>n<\/sub><\/em>\u27e9 o <em>k<\/em> is a <strong>C<\/strong>-morphism (or rather, its image by <em>U<\/em>, if we wish to be entirely formal).  But that is equal to \u27e8<em>g<\/em><sub>1<\/sub> o <em>k<\/em>, &#8230;, <em>g<sub>n<\/sub><\/em> o <em>k<\/em>\u27e9, which is a pairing in <strong>D<\/strong>, equivalently in <strong>C<\/strong>, hence is a <strong>C<\/strong>-morphism.  \u2610<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In the sequel, I will write <em>f<\/em> \u00d7 <em>g<\/em> for the product of two morphisms (in whichever category that has binary products); that is an abbreviation for the morphism \u27e8<em>f<\/em> o \u03c0<sub>1<\/sub>, <em><em>g<\/em><\/em> o \u03c0<sub>2<\/sub>\u27e9.  Before we show that <strong>Map<\/strong><span style=\"text-decoration: underline;\"><sub>C<\/sub><\/span> is Cartesian-closed (under some assumptions on <span style=\"text-decoration: underline;\">C<\/span>), let us explore the shape of exponentials in <strong>C<\/strong>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Exponentials<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Given any two objects <em>X<\/em> and <em>Y<\/em> in a category with finite products, the <em>exponential<\/em> <em>Y<sup>X<\/sup><\/em>, if it exists, is an object, together with:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>a morphism App : <em>Y<sup>X<\/sup><\/em> \u00d7 <em>X<\/em> \u2192 <em>Y<\/em> (<em>application<\/em>, sometimes called evaluation);<\/li>\n\n\n\n<li>an operation \u039b (<em>currification<\/em>, sometimes called abstraction), such that \u039b(<em>h<\/em>) is a morphism from <em>Z<\/em> to <em>Y<sup>X<\/sup><\/em> for every morphism <em>h<\/em> : <em>Z<\/em> \u00d7 <em>X<\/em> \u2192 <em>Y<\/em>;<\/li>\n\n\n\n<li>satisfying the equations:\n<ul class=\"wp-block-list\">\n<li>(\u03b2) App o (\u039b(<em>f<\/em>) \u00d7 id<em><sub>X<\/sub><\/em>) =&nbsp;<em>f<\/em>&nbsp;for every morphism <em>f<\/em> : <em>Z<\/em> \u00d7 <em>X<\/em> \u2192 <em>Y<\/em>,<\/li>\n\n\n\n<li>(\u03b7) \u039b(App) = id<sub><em>Y<sup>X<\/sup><\/em><\/sub><\/li>\n\n\n\n<li>(\u03c3) \u039b(<em>f<\/em>) o <em>g<\/em>&nbsp;= \u039b(<em>f<\/em> o (<em>g<\/em> \u00d7 id<em><sub>X<\/sub><\/em>))&nbsp;for all morphisms <em>f<\/em> : <em>Z<\/em> \u00d7 <em>X<\/em> \u2192 <em>Y<\/em> and <em>g<\/em> : <em>Z\u2032<\/em>&nbsp;\u2192 <em>Z<\/em>.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">This is discussed in Section 5.5.3 of the <a href=\"https:\/\/www.cambridge.org\/gb\/knowledge\/isbn\/item7069109\/Non-Hausdorff%20Topology%20and%20Domain%20Theory\/?site_locale=en_GB\">book<\/a>. There are many other possible equivalent definitions, but the above definition has two advantages: first, it is closest to what one needs in computer science, as it shows best the connection with the lambda-calculus ((\u03b2) is the lambda-calculus&#8217; \u03b2-equivalence rule, (\u03b7) is \u03b7-equivalence, and (\u03c3) is compatibility of lambda-abstractions with substitutions); second, it shows that exponential objects can be characterized entirely equationally (i.e., using equations, not more complicated statements of the form &#8220;for every diagram, there is a unique arrow&#8221;).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">An object <em>X<\/em> is exponentiable if and only if the exponential <em>Y<sup>X<\/sup><\/em> exists for every object <em>Y<\/em>. Equivalently, <em>X<\/em> is exponentiable if and only if the functor _ \u00d7 <em>X<\/em> has a right adjoint (and that right adjoint is the functor _<em><sup>X<\/sup><\/em>).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Finally, a category is Cartesian-closed if and only if it has all finite products and every object is exponentiable. Those are exactly the models of (simply-typed, extensional) lambda-calculus.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">The shape of exponentials in <strong>C<\/strong> (when they exist)<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">We will now assume that <strong>D<\/strong> is just <strong>Set<\/strong>, as I had warned I would eventually do.  A topological functor from <strong>C<\/strong> to <strong>Set<\/strong> is called a <em>topological construct<\/em>. We note that <strong>Set<\/strong> has all finite products, and is Cartesian-closed.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The following is Corollary 1 in [2].  This is the generalization of the familiar fact that, if the exponential <em>Y<sup>C<\/sup><\/em> of two objects <em>C<\/em> and <em>Y<\/em> exists in <strong>Top<\/strong>, then it can be taken, up to isomorphism, to be the space of all continuous maps from <em>C<\/em> to <em>Y<\/em>, with some unique topology (Theorem 5.5.1 in the <a href=\"https:\/\/www.cambridge.org\/gb\/knowledge\/isbn\/item7069109\/Non-Hausdorff%20Topology%20and%20Domain%20Theory\/?site_locale=en_GB\">book<\/a>).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In doing so, we will use the fact that any topological functor is <em><a href=\"https:\/\/projects.lsv.ens-paris-saclay.fr\/topology\/?page_id=4133\" data-type=\"page\" data-id=\"4133\">uniquely transportable<\/a><\/em>: every isomorphism <em>f<\/em> from <em>U<\/em>(<em>Y<\/em>) to <em>E<\/em> in <strong>D<\/strong> lifts to a unique isomorphism from <em>Y<\/em> to some (unique) object <em>X<\/em> in the fiber of <em>E<\/em>.  (In the standard example, this means that given any topological space <em>Y<\/em>, and any bijection <em>f<\/em> between the underlying set of <em>Y<\/em> with some set <em>E<\/em>, there is a unique topology on <em>E<\/em> that turns <em>f<\/em> into a homeomorphism).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Lemma B.<\/strong>  Let <em>U<\/em> : <strong>C<\/strong> \u2192 <strong>Set<\/strong> be a topological construct with discrete terminal objects.  Given any two objects <em>C<\/em> and <em>Y<\/em> in <strong>C<\/strong>, if the exponential <em>Y<sup>C<\/sup><\/em> exists in <strong>C<\/strong>, then up to isomorphism <em>Y<sup>C<\/sup><\/em> lies in the fiber of the set Hom<strong><sub>C<\/sub><\/strong>(<em>C<\/em>, <em>Y<\/em>).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Proof.<\/em>  A word of explanation, first: Hom<strong><sub>C<\/sub><\/strong>(<em>C<\/em>, <em>Y<\/em>) is the hom set from <em>C<\/em> to <em>Y<\/em> in <strong>C<\/strong>, namely, the set of <strong>C<\/strong>-morphisms from <em>C<\/em> to <em>Y<\/em> in <strong>C<\/strong>.  The &#8220;up to isomorphism&#8221; part means that there is a <strong>C<\/strong>-object <em>B<\/em> in the fiber of Hom<strong><sub>C<\/sub><\/strong>(<em>C<\/em>, <em>Y<\/em>) that is isomorphic to <em>Y<sup>C<\/sup><\/em>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Let me also remind you that having discrete terminal objects means that there is exactly one object <strong>1<\/strong> of <strong>C<\/strong> such that <em>U<\/em>(<strong>1<\/strong>) is the one-element set {*}.  This must be the terminal object of <strong>C<\/strong>, because the terminal objects are the zero-ary products, and products in <strong>C<\/strong> are lifted from products in <strong>Set<\/strong>.  The point in using this assumption is that, given any object <em>Z<\/em> of <strong>C<\/strong>, for every element <em>z<\/em> of <em>U<\/em>(<em>Z<\/em>), there is a unique morphism <em>z<\/em><sup>1<\/sup> : <strong>1<\/strong> \u2192 <em>Z<\/em> such that <em>U<\/em>(<em>z<\/em><sup>1<\/sup>)(*)=<em>z<\/em>.  It is obtained as the <em>U<\/em>-initial lift of the <em>U<\/em>-source consisting of the unique function * \u21a6 <em>z<\/em> : {*} \u2192 <em>U<\/em>(<em>Z<\/em>): this lift must be a <strong>C<\/strong>-morphism from some object <em>X<\/em> in the fiber of {*} to <em>Z<\/em>, and the assumption of having discrete terminal objects guarantees that <em>X<\/em> is, in fact, <strong>1<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">We now show that <em>B<\/em> exists.  For every <em>h<\/em> \u2208 <em>U<\/em>(<em>Y<sup>C<\/sup><\/em>), we build <em>h<\/em><sup>1<\/sup> : <strong>1<\/strong> \u2192 <em>Y<sup>C<\/sup><\/em>, using the latter remark.  This allows us to form \u03b8(<em>h<\/em>) \u225d App o (<em>h<\/em><sup>1<\/sup> \u00d7 id<em><sub>C<\/sub><\/em>) o \u27e8!<em><sub>C<\/sub><\/em>, id<em><sub>C<\/sub><\/em>\u27e9 : <em>C<\/em> \u2192 <em>Y<\/em>.  Here !<em><sub>C<\/sub><\/em> is the unique morphism from <em>C<\/em> to <strong>1<\/strong>, by definition of <strong>1<\/strong> as a terminal object.  Hence \u27e8!<em><sub>C<\/sub><\/em>, id<em><sub>C<\/sub><\/em>\u27e9 is a morphism from <em>C<\/em> to <strong>1<\/strong> \u00d7 <em>C<\/em>, (<em>h<\/em><sup>1<\/sup> \u00d7 id<em><sub>C<\/sub><\/em>) goes from <strong>1<\/strong> \u00d7 <em>C<\/em> to <em>Y<sup>C<\/sup><\/em> \u00d7 <em>C<\/em>, and App goes from <em>Y<sup>C<\/sup><\/em> \u00d7 <em>C<\/em> to <em>Y<\/em>.  Therefore \u03b8(<em>h<\/em>) is a morphism from <em>C<\/em> to <em>Y<\/em> in <strong>C<\/strong>, hence an element of Hom<strong><sub>C<\/sub><\/strong>(<em>C<\/em>, <em>Y<\/em>).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">We have therefore defined a map \u03b8 from <em>U<\/em>(<em>Y<sup>C<\/sup><\/em>) to Hom<strong><sub>C<\/sub><\/strong>(<em>C<\/em>, <em>Y<\/em>).  We build a map \u03b8&#8217; in the reverse direction by letting \u03b8'(<em>f<\/em>) \u225d <em>U<\/em>(\u039b(<em>f<\/em> o \u03c0<sub>2<\/sub>))(*) \u2208 <em>U<\/em>(<em>Y<sup>C<\/sup><\/em>), for every <strong>C<\/strong>-morphism <em>f<\/em> : <em>C<\/em> \u2192 <em>Y<\/em>.  Note that <em>f<\/em> o \u03c0<sub>2<\/sub> is a <strong>C<\/strong>-morphism from <strong>1<\/strong> \u00d7 <em>C<\/em> to <em>Y<\/em>, so \u039b(<em>f<\/em> o \u03c0<sub>2<\/sub>) is a <strong>C<\/strong>-morphism from <strong>1<\/strong> to <em>Y<sup>C<\/sup><\/em>, so <em>U<\/em>(\u039b(<em>f<\/em> o \u03c0<sub>2<\/sub>)) is a function from {*} to <em>U<\/em>(<em>Y<sup>C<\/sup><\/em>).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">We check that \u03b8 and \u03b8&#8217; are mutual inverses.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>We have \u03b8(\u03b8'(<em>f<\/em>)) = App o (\u03b8'(<em>f<\/em>)<sup>1<\/sup> \u00d7 id<em><sub>C<\/sub><\/em>) o \u27e8!<em><sub>C<\/sub><\/em>, id<em><sub>C<\/sub><\/em>\u27e9.  By definition, \u03b8'(<em>f<\/em>)<sup>1<\/sup> is the unique <strong>C<\/strong>-morphism from <strong>1<\/strong> to <em>Y<sup>C<\/sup><\/em> such that <em>U<\/em>(\u03b8'(<em>f<\/em>)<sup>1<\/sup>)(*)=\u03b8'(<em>f<\/em>); but \u03b8'(<em>f<\/em>)=<em>U<\/em>(\u039b(<em>f<\/em> o \u03c0<sub>2<\/sub>))(*), so uniqueness implies that \u03b8'(<em>f<\/em>)<sup>1<\/sup> = \u039b(<em>f<\/em> o \u03c0<sub>2<\/sub>).  Therefore \u03b8(\u03b8'(<em>f<\/em>)) = App o (\u039b(<em>f<\/em> o \u03c0<sub>2<\/sub>) \u00d7 id<em><sub>C<\/sub><\/em>) o \u27e8!<em><sub>C<\/sub><\/em>, id<em><sub>C<\/sub><\/em>\u27e9.  Using (\u03b2), we see that this is equal to <em>f<\/em> o \u03c0<sub>2<\/sub> o \u27e8!<em><sub>C<\/sub><\/em>, id<em><sub>C<\/sub><\/em>\u27e9, namely to <em>f<\/em>.<\/li>\n\n\n\n<li>In the other direction, \u03b8'(\u03b8(<em>h<\/em>)) = <em>U<\/em>(\u039b(\u03b8(<em>h<\/em>) o \u03c0<sub>2<\/sub>))(*); now \u03b8(<em>h<\/em>) o \u03c0<sub>2<\/sub> = App o (<em>h<\/em><sup>1<\/sup> \u00d7 id<em><sub>C<\/sub><\/em>) o \u27e8!<em><sub>C<\/sub><\/em>, id<em><sub>C<\/sub><\/em>\u27e9 o \u03c0<sub>2<\/sub>, and the rightmost composition \u27e8!<em><sub>C<\/sub><\/em>, id<em><sub>C<\/sub><\/em>\u27e9 o \u03c0<sub>2<\/sub> : <strong>1<\/strong> \u00d7 <em>C<\/em> \u2192 <strong>1<\/strong> \u00d7 <em>C<\/em> is the identity map (exercice!).  Therefore \u03b8(<em>h<\/em>) o \u03c0<sub>2<\/sub> = App o (<em>h<\/em><sup>1<\/sup> \u00d7 id<em><sub>C<\/sub><\/em>).  Then \u039b(\u03b8(<em>h<\/em>) o \u03c0<sub>2<\/sub>) = \u039b(App o (<em>h<\/em><sup>1<\/sup> \u00d7 id<em><sub>C<\/sub><\/em>)) is equal to \u039b(App) o <em>h<\/em><sup>1<\/sup> by (\u03c3), hence to <em>h<\/em><sup>1<\/sup> since \u039b(App) is the identity by (\u03b7).  We conclude that \u03b8'(\u03b8(<em>h<\/em>)) = <em>U<\/em>(<em>h<\/em><sup>1<\/sup>)(*), which is equal to <em>h<\/em>, by definition of <em>h<\/em><sup>1<\/sup>.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">By unique transportability, there is a unique object <em>B<\/em> in the fiber of Hom<strong><sub>C<\/sub><\/strong>(<em>C<\/em>, <em>Y<\/em>) that turns \u03b8 and \u03b8&#8217; into mutually inverse isomorphisms in <strong>C<\/strong>.  This shows that <em>B<\/em>, the desired exponential object in the fiber of Hom<strong><sub>C<\/sub><\/strong>(<em>C<\/em>, <em>Y<\/em>), exists.  \u2610<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Now, and I am ashamed to say so, the proof of Corollary 1 in [2], or rather of Lemma 3 there, contains a gap.  It says that application and currification can be characterized concretely, in the manner we are going to describe next.  To do so, it says that if <em>Y<sup>C<\/sup><\/em> is already in the fiber of Hom<strong><sub>C<\/sub><\/strong>(<em>C<\/em>, <em>Y<\/em>), then \u03b8 is the identity map, from which the following formulae follow.  But that is not true: \u03b8 may be a somewhat arbitrary automorphism of Hom<strong><sub>C<\/sub><\/strong>(<em>C<\/em>, <em>Y<\/em>).  We need to be a bit more formal, and allow ourselves to take (yet) another object in the fiber of Hom<strong><sub>C<\/sub><\/strong>(<em>C<\/em>, <em>Y<\/em>), possibly.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Lemma C.<\/strong>  In the setting of Lemma B, we may additionally require that:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Application App : <em>Y<sup>C<\/sup><\/em> \u00d7 <em>C<\/em> \u2192 <em>Y<\/em> is such that <em>U<\/em>(App) is ordinary set-theoretic application, namely <em>U<\/em>(App) (<em>h<\/em>, <em>x<\/em>) = <em>h<\/em>(<em>x<\/em>) for all <em>h<\/em> \u2208 Hom<strong><sub>C<\/sub><\/strong>(<em>C<\/em>, <em>Y<\/em>) and <em>x<\/em> \u2208 <em>U<\/em>(<em>C<\/em>);<\/li>\n\n\n\n<li>Currification \u039b(<em>f<\/em>) : <em>Z<\/em> \u2192 <em>Y<sup>C<\/sup><\/em> (where <em>f<\/em> : <em>Z<\/em> \u00d7 <em>C<\/em> \u2192 <em>Y<\/em> in <strong>C<\/strong>) is such that <em>U<\/em>(\u039b(<em>f<\/em>)) (<em>z<\/em>) = <em>f<\/em> o \u27e8<em><em>z<\/em><sup>1<\/sup><\/em> o !<em><sub>C<\/sub><\/em>, id<em><sub>C<\/sub><\/em>\u27e9 for every <em>z<\/em> \u2208 <em>Z<\/em>.  In particular, for every <em>x<\/em> \u2208 <em>C<\/em>, <em>U<\/em>(<em>U<\/em>(\u039b(<em>f<\/em>)) (<em>z<\/em>)) (<em>x<\/em>) = <em>U<\/em>(<em>f<\/em>) (<em>z<\/em>, <em>x<\/em>).<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Proof.<\/em>  We reuse the notations used in the proof of Lemma B.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Let us recall that \u03b8(<em>h<\/em>) = App o (<em>h<\/em><sup>1<\/sup> \u00d7 id<em><sub>C<\/sub><\/em>) o \u27e8!<em><sub>C<\/sub><\/em>, id<em><sub>C<\/sub><\/em>\u27e9 : <em>C<\/em> \u2192 <em>Y<\/em>, for every <em>h<\/em> \u2208 <em>U<\/em>(<em>Y<sup>C<\/sup><\/em>).  We apply the <em>U<\/em> functor to that equation, and, remembering that <em>U<\/em> preserves products exactly (by Lemma A), we obtain that <em>U<\/em>(\u03b8(<em>h<\/em>)) is <em>U<\/em>(App) composed with (<em>U<\/em>(<em>h<\/em><sup>1<\/sup>) \u00d7 id<em><sub>U<\/sub><\/em><sub>(<\/sub><em><sub>C<\/sub><\/em><sub>)<\/sub>), composed with the map <em>x<\/em> \u21a6 (*, <em>x<\/em>).  By definition of <em>h<\/em><sup>1<\/sup>, <em>U<\/em>(<em>h<\/em><sup>1<\/sup>)(*) = <em>h<\/em>, so <em>U<\/em>(\u03b8(<em>h<\/em>)) maps every <em>x<\/em> in <em>C<\/em> to <em>U<\/em>(App) (<em>h<\/em>, <em>x<\/em>).  Hence:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>(1) <em>U<\/em>(App) (<em>h<\/em>, <em>x<\/em>) = <em>U<\/em>(\u03b8(<em>h<\/em>)) (<em>x<\/em>) for all <em>h<\/em> \u2208 Hom<strong><sub>C<\/sub><\/strong>(<em>C<\/em>, <em>Y<\/em>) and <em>x<\/em> \u2208 <em>U<\/em>(<em>C<\/em>).<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Right, there is an extra \u03b8 in here, and we will remove it now.  The key is to switch to another (isomorphic) exponential object <em>A<\/em> on <em>C<\/em> and <em>Y<\/em>.  <em>A<\/em> is obtained by unique transportability as the unique object in the fiber of Hom<strong><sub>C<\/sub><\/strong>(<em>C<\/em>, <em>Y<\/em>) that makes \u03b8 an isomorphism from <em>Y<sup>C<\/sup><\/em> onto <em>A<\/em> in <strong>C<\/strong>.  True, that is exactly what we did in the proof of Lemma B, but we did not make application and currification explicit on that object.  Hence let App&#8217; : <em>A<\/em> \u00d7 <em>C<\/em> \u2192 <em>Y<\/em> be that application and \u039b'(<em>f<\/em>) : <em>Z<\/em> \u2192 <em>A<\/em> denote the currification of <em>f<\/em> : <em>Z<\/em> \u00d7 <em>C<\/em> \u2192 <em>Y<\/em>.  Explicitly, we recall that \u03b8&#8217; is the inverse of \u03b8, and we have:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>App&#8217; = App o (\u03b8&#8217; \u00d7 id<em><sub>C<\/sub><\/em>);<\/li>\n\n\n\n<li>\u039b'(<em>f<\/em>) = \u03b8 o \u039b(<em>f<\/em>).<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">I will let you check that the usual equations defining application and currification are satisfied:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>(\u03b2&#8217;) App&#8217; o (\u039b'(<em>f<\/em>) \u00d7 id<em><sub>C<\/sub><\/em>) =&nbsp;<em>f<\/em>&nbsp;for every morphism <em>f<\/em> : <em>Z<\/em> \u00d7 <em>C<\/em> \u2192 <em>Y<\/em>,<\/li>\n\n\n\n<li>(\u03b7&#8217;) \u039b'(App&#8217;) = id<sub><em>A,<\/em><\/sub><\/li>\n\n\n\n<li>(\u03c3&#8217;) \u039b'(<em>f<\/em>) o <em>g<\/em>&nbsp;= \u039b'(<em>f<\/em> o (<em>g<\/em> \u00d7 id<em><sub>C<\/sub><\/em>))&nbsp;for all morphisms <em>f<\/em> : <em>Z<\/em> \u00d7 <em>C<\/em> \u2192 <em>Y<\/em> and <em>g<\/em> : <em>Z\u2032<\/em>&nbsp;\u2192 <em>Z<\/em>.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Now equation (1) above applies to every <em>h<\/em> \u225d \u03b8'(<em>h&#8217;<\/em>) where <em>h&#8217;<\/em> is arbitrary in <em>U<\/em>(<em>A<\/em>) [= Hom<strong><sub>C<\/sub><\/strong>(<em>C<\/em>, <em>Y<\/em>)], and yields:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>(2) <em>U<\/em>(App&#8217;) (<em>h<\/em>&#8216;, <em>x<\/em>) = <em>h<\/em>&#8216; (<em>x<\/em>) for all <em>h<\/em>&#8216; \u2208 Hom<strong><sub>C<\/sub><\/strong>(<em>C<\/em>, <em>Y<\/em>) and <em>x<\/em> \u2208 <em>U<\/em>(<em>C<\/em>),<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">which is the first of the equations we are looking for (modulo the replacement of <em>Y<sup>C<\/sup><\/em> by <em>A<\/em>, and of App by App&#8217;).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Similarly, the second equation is <em>U<\/em>(\u039b'(<em>f<\/em>)) (<em>z<\/em>) =<em>f<\/em> o \u27e8<em><em>z<\/em><sup>1<\/sup><\/em> o !<em><sub>C<\/sub><\/em>, id<em><sub>C<\/sub><\/em>\u27e9.  We check it as follows.  \u039b'(<em>f<\/em>) o <em>z<\/em><sup>1<\/sup> is equal to \u039b'(<em>f<\/em> o (<em><em>z<\/em><sup>1<\/sup><\/em> \u00d7 id<em><sub>C<\/sub><\/em>))&nbsp;by (\u03c3&#8217;), so <em>U<\/em>(\u039b'(<em>f<\/em>)) (<em>z<\/em>) = <em>U<\/em>(\u039b'(<em>f<\/em>) o <em>z<\/em><sup>1<\/sup>) (*) = <em>U<\/em>(\u039b'(<em>f<\/em> o (<em><em>z<\/em><sup>1<\/sup><\/em> \u00d7 id<em><sub>C<\/sub><\/em>))) (*).  But <em>f<\/em> o \u27e8<em><em>z<\/em><sup>1<\/sup><\/em> o !<em><sub>C<\/sub><\/em>, id<em><sub>C<\/sub><\/em>\u27e9  o \u03c0<sub>2<\/sub> : <strong>1<\/strong> \u00d7 <em>C<\/em> \u2192 <em>Y<\/em> is equal to <em>f<\/em> o (<em><em>z<\/em><sup>1<\/sup><\/em> \u00d7 id<em><sub>C<\/sub><\/em>); indeed, the \u03c0<sub>2<\/sub> here is the inverse of \u27e8!<em><sub>C<\/sub><\/em>, id<em><sub>C<\/sub><\/em>\u27e9 : <em>C<\/em> \u2192 <strong>1<\/strong> \u00d7 <em>C<\/em>, and \u27e8<em><em>z<\/em><sup>1<\/sup><\/em> o !<em><sub>C<\/sub><\/em>, id<em><sub>C<\/sub><\/em>\u27e9 = (<em><em>z<\/em><sup>1<\/sup><\/em> \u00d7 id<em><sub>C<\/sub><\/em>) o \u27e8!<em><sub>C<\/sub><\/em>, id<em><sub>C<\/sub><\/em>\u27e9, as one can check using the equations of pairing.  We have therefore proved that <em>U<\/em>(\u039b'(<em>f<\/em>)) (<em>z<\/em>) = <em>U<\/em>(\u039b'(<em>f<\/em> o \u27e8<em><em>z<\/em><sup>1<\/sup><\/em> o !<em><sub>C<\/sub><\/em>, id<em><sub>C<\/sub><\/em>\u27e9  o \u03c0<sub>2<\/sub>)) (*).  This is equal to (\u03b8 o <em>U<\/em>(\u039b(<em>f<\/em> o \u27e8<em><em>z<\/em><sup>1<\/sup><\/em> o !<em><sub>C<\/sub><\/em>, id<em><sub>C<\/sub><\/em>\u27e9  o \u03c0<sub>2<\/sub>))) (*) (using the fact that we have written \u03b8 as its own lift, and \u039b'(<em>g<\/em>) = \u03b8 o \u039b(<em>g<\/em>) for every <em>g<\/em>).  Now we recall that \u03b8'(<em>g<\/em>) was defined as <em>U<\/em>(\u039b(<em>g<\/em> o \u03c0<sub>2<\/sub>))(*) for every <em>g<\/em>, so we recognize that <em>U<\/em>(\u039b(<em>f<\/em> o \u27e8<em><em>z<\/em><sup>1<\/sup><\/em> o !<em><sub>C<\/sub><\/em>, id<em><sub>C<\/sub><\/em>\u27e9  o \u03c0<sub>2<\/sub>))) (*) = \u03b8&#8217; (<em>f<\/em> o \u27e8<em><em>z<\/em><sup>1<\/sup><\/em> o !<em><sub>C<\/sub><\/em>, id<em><sub>C<\/sub><\/em>\u27e9).  Using that \u03b8&#8217; is its own lift, we obtain that <em>U<\/em>(\u039b'(<em>f<\/em>)) (<em>z<\/em>) = \u03b8 (<em>U<\/em>(\u039b(<em>f<\/em> o \u27e8<em><em>z<\/em><sup>1<\/sup><\/em> o !<em><sub>C<\/sub><\/em>, id<em><sub>C<\/sub><\/em>\u27e9  o \u03c0<sub>2<\/sub>))) (*)) = \u03b8 (\u03b8&#8217; (<em>f<\/em> o \u27e8<em><em>z<\/em><sup>1<\/sup><\/em> o !<em><sub>C<\/sub><\/em>, id<em><sub>C<\/sub><\/em>\u27e9)) = <em>f<\/em> o \u27e8<em><em>z<\/em><sup>1<\/sup><\/em> o !<em><sub>C<\/sub><\/em>, id<em><sub>C<\/sub><\/em>\u27e9.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The final claim that <em>U<\/em>(<em>U<\/em>(\u039b'(<em>f<\/em>)) (<em>z<\/em>)) (<em>x<\/em>) = <em>U<\/em>(<em>f<\/em>) (<em>z<\/em>, <em>x<\/em>) follows immediately, recalling that <em>U<\/em> (<em><em>z<\/em><sup>1<\/sup><\/em>) (*)= <em>z<\/em>.  \u2610<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">On top of all that, we can show that the object <em>Y<sup>C<\/sup><\/em> satisfying both the requirements of Lemma B and Lemma C is unique.  But we will not need it, and I will skip this.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Strongly productive classes and the Cartesian-closed structure of <strong>Map<\/strong><span style=\"text-decoration: underline;\"><sub>C<\/sub><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Let again <strong>D<\/strong> be <strong>Set<\/strong>, namely let us assume that <em>U<\/em> is a topological construct.  Let us say that the class <span style=\"text-decoration: underline;\">C<\/span> is <em>strongly productive<\/em> if and only if:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>every object <em>C<\/em> of <span style=\"text-decoration: underline;\">C<\/span> is exponentiable (in <strong>C<\/strong>);<\/li>\n\n\n\n<li>the product of any two objects of <span style=\"text-decoration: underline;\">C<\/span> in <strong>C<\/strong> is in <span style=\"text-decoration: underline;\">C<\/span>.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Technically, products are only defined up to isomorphism, so the latter requirement is better understood as &#8220;given any two objects of <span style=\"text-decoration: underline;\">C<\/span>, at least one of their products in <strong>C<\/strong> is in <span style=\"text-decoration: underline;\">C<\/span>&#8220;.  I will ignore that kind of subtlety.  The following is Theorem 1 in [2], and is the main result in this post.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Theorem.<\/strong>  Let <em>U<\/em> : <strong>C<\/strong> \u2192 <strong>Set<\/strong> be a topological construct with discrete terminal objects, and let us assume that <span style=\"text-decoration: underline;\">C<\/span> is a strongly productive class of objects of <strong>C<\/strong>.  Then <strong>Map<\/strong><span style=\"text-decoration: underline;\"><sub>C<\/sub><\/span> is Cartesian-closed.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Proof.<\/em>  Given any two objects <em>X<\/em> and <em>Y<\/em> in <strong>Map<\/strong><span style=\"text-decoration: underline;\"><sub>C<\/sub><\/span> (namely, in <strong>C<\/strong>), let us write <span style=\"text-decoration: underline;\">C<\/span>(<em>X<\/em>,<em>Y<\/em>) for the set of all <span style=\"text-decoration: underline;\">C<\/span>-maps from <em>X<\/em> to <em>Y<\/em>.  We will build the exponential object on <em>X<\/em> and <em>Y<\/em> in <strong>Map<\/strong><span style=\"text-decoration: underline;\"><sub>C<\/sub><\/span> as an object of <strong>C<\/strong> in the fiber of <span style=\"text-decoration: underline;\">C<\/span>(<em>X<\/em>,<em>Y<\/em>).  (In the standard example, this means that the exponential will be the set of <span style=\"text-decoration: underline;\">C<\/span>-maps from <em>X<\/em> to <em>Y<\/em>, with some topology.)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Given any <span style=\"text-decoration: underline;\">C<\/span>-probe <em>k<\/em> : <em>C<\/em> \u2192 <em>X<\/em>, there is a map _ o <em>k<\/em> (post composition with <em>k<\/em>\u2014which I should really write as _ o <em>U<\/em>(<em>k<\/em>)!), which sends every <em>f<\/em> \u2208 <span style=\"text-decoration: underline;\">C<\/span>(<em>X<\/em>,<em>Y<\/em>) to <em>f<\/em> o <em>U<\/em>(<em>k<\/em>) \u2208 Hom<strong><sub>C<\/sub><\/strong>(<em>C<\/em>, <em>Y<\/em>); <em>f<\/em> o <em>U<\/em>(<em>k<\/em>) is a <strong>C<\/strong>-morphism indeed, by definition of <span style=\"text-decoration: underline;\">C<\/span>-maps.  Now, since <em>C<\/em>, as an object of the strongly productive class <span style=\"text-decoration: underline;\">C<\/span>, is exponentiable in <strong>C<\/strong>, the exponential object <em>Y<sup>C<\/sup><\/em> exists, and by Lemma B, we may assume that it lies in the fiber of Hom<strong><sub>C<\/sub><\/strong>(<em>C<\/em>, <em>Y<\/em>).  Therefore _ o <em>k<\/em> is a function from <span style=\"text-decoration: underline;\">C<\/span>(<em>X<\/em>,<em>Y<\/em>) to <em>U<\/em>(<em>Y<sup>C<\/sup><\/em>).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">We will also assume that App and \u039b(<em>f<\/em>) (for every relevant <em>f<\/em>) are mapped by <em>U<\/em> to the specific forms given in Lemma C.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">We form the <em>U<\/em>-source consisting of all the maps _ o <em>k<\/em> : <span style=\"text-decoration: underline;\">C<\/span>(<em>X<\/em>,<em>Y<\/em>) \u2192 <em>U<\/em>(<em>Y<sup>C<\/sup><\/em>), where <em>k<\/em> : <em>C<\/em> \u2192 <em>X<\/em> ranges over all the <span style=\"text-decoration: underline;\">C<\/span>-probes with codomain <em>X<\/em>.  (<em>C<\/em> varies, too, as <em>k<\/em> does.)  Since <em>U<\/em> is a topological functor, that <em>U<\/em>-source has a <em>U<\/em>-initial lift.  Explicitly, there is an object <em>A<\/em> in the fiber of <span style=\"text-decoration: underline;\">C<\/span>(<em>X<\/em>,<em>Y<\/em>) such that:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>(I) _ o <em>k<\/em> is (lifts to) a <strong>C<\/strong>-morphism from <em>A<\/em> to <em>Y<sup>C<\/sup><\/em> for every <span style=\"text-decoration: underline;\">C<\/span>-probe <em>k<\/em> : <em>C<\/em> \u2192 <em>X<\/em> with codomain <em>X<\/em>;<\/li>\n\n\n\n<li>(II) for every function <em>h<\/em> : <em>U<\/em>(<em>Z<\/em>) \u2192 <span style=\"text-decoration: underline;\">C<\/span>(<em>X<\/em>,<em>Y<\/em>), <em>h<\/em> is a <strong>C<\/strong>-morphism if and only if for every <span style=\"text-decoration: underline;\">C<\/span>-probe <em>k<\/em> : <em>C<\/em> \u2192 <em>X<\/em> with codomain <em>X<\/em>, (_ o <em>k<\/em>) o <em>h<\/em> is a <strong>C<\/strong>-morphism from <em>Z<\/em> to <em>Y<sup>C<\/sup><\/em>.  (Explicitly, (_ o <em>k<\/em>) o <em>h<\/em> is the function that maps every <em>z<\/em> in <em>U<\/em>(<em>Z<\/em>) to <em>h<\/em>(<em>z<\/em>) o <em>U<\/em>(<em>k<\/em>).)<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">We claim that this object <em>A<\/em> is the desired exponential object in <strong>Map<\/strong><span style=\"text-decoration: underline;\"><sub>C<\/sub><\/span>.  In [2], it is written as [<em>Y<sup>X<\/sup><\/em>]<span style=\"text-decoration: underline;\"><sub>C<\/sub><\/span>.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>We let application in <strong>Map<\/strong><span style=\"text-decoration: underline;\"><sub>C<\/sub><\/span> be the function (in <strong>Set<\/strong>) App<span style=\"text-decoration: underline;\"><sub>C<\/sub><\/span> : <span style=\"text-decoration: underline;\">C<\/span>(<em>X<\/em>,<em>Y<\/em>) \u00d7 <em>U<\/em>(<em>X<\/em>) \u2192 <em>U<\/em>(<em>Y<\/em>) defined by App<span style=\"text-decoration: underline;\"><sub>C<\/sub><\/span> (<em>f<\/em>, <em>x<\/em>) \u225d <em>f<\/em>(<em>x<\/em>).<br>We need to check that App<span style=\"text-decoration: underline;\"><sub>C<\/sub><\/span> is a morphism in <strong>Map<\/strong><span style=\"text-decoration: underline;\"><sub>C<\/sub><\/span>, namely that, given any <span style=\"text-decoration: underline;\">C<\/span>-probe <em>k<\/em> : <em>C<\/em> \u2192 <em>A<\/em> \u00d7 <em>X<\/em>, App<span style=\"text-decoration: underline;\"><sub>C<\/sub><\/span> o <em>U<\/em>(<em>k<\/em>) is (lifts to) a <strong>C<\/strong>-morphism.  (Yes, we are using Lemma A implicitly here: <em>A<\/em> \u00d7 <em>X<\/em> is in the fiber of <em>U<\/em>(<em>A<\/em>) \u00d7 <em>U<\/em>(<em>X<\/em>), namely of <span style=\"text-decoration: underline;\">C<\/span>(<em>X<\/em>,<em>Y<\/em>) \u00d7 <em>U<\/em>(<em>X<\/em>).  I will continue to use Lemma A implicitly on a regular basis.)<br>To this end, we write <em>k<\/em> as \u27e8<em>k<\/em><sub>1<\/sub>, <em>k<\/em><sub>2<\/sub>\u27e9, where <em>k<\/em><sub>1<\/sub> : <em>C<\/em> \u2192 <em>A<\/em> and <em>k<\/em><sub>2<\/sub> : <em>C<\/em> \u2192 <em>X<\/em>; it suffices to define <em>k<\/em><sub>1<\/sub> as \u03c0<sub>1<\/sub> o <em>k<\/em> and <em>k<\/em><sub>2<\/sub> as \u03c0<sub>2<\/sub> o <em>k<\/em>.  We note that <em>k<\/em><sub>1<\/sub> and <em>k<\/em><sub>2<\/sub> are <span style=\"text-decoration: underline;\">C<\/span>-probes, too.<br>We then check that App<sub><span style=\"text-decoration: underline;\">C<\/span><\/sub> o <em>U<\/em>(<em>k<\/em>) = <em>U<\/em>(App o ((_ o <em>k<\/em><sub>2<\/sub>) \u00d7 id<em><sub>C<\/sub><\/em>) o \u27e8<em>k<\/em><sub>1<\/sub>, id<em><sub>C<\/sub><\/em>\u27e9) : <em>C<\/em> \u2192 <em>Y<\/em>.  To this end, we use the characterization of <em>U<\/em>(App) given in Lemma C, namely <em>U<\/em>(App) (<em>h<\/em>, <em>x<\/em>) = <em>h<\/em>(<em>x<\/em>).  For every <em>c<\/em> in <em>C<\/em>, <em>U<\/em>(App o ((_ o <em>k<\/em><sub>2<\/sub>) \u00d7 id<em><sub>C<\/sub><\/em>) o \u27e8<em>k<\/em><sub>1<\/sub>, id<em><sub>C<\/sub><\/em>\u27e9) (<em>c<\/em>) = <em>U<\/em>(App) (<em>k<\/em><sub>1<\/sub>(<em>c<\/em>) o <em>k<\/em><sub>2<\/sub>, <em>c<\/em>) = <em>k<\/em><sub>1<\/sub>(<em>c<\/em>) (<em>k<\/em><sub>2<\/sub>(<em>c<\/em>))  (oh, right, I should write <em>U<\/em>(<em>k<\/em><sub>1<\/sub>) and <em>U<\/em>(<em>k<\/em><sub>2<\/sub>) instead of <em>k<\/em><sub>1<\/sub> and <em>k<\/em><sub>2<\/sub>, respectively&#8230;), while (App<sub><span style=\"text-decoration: underline;\">C<\/span><\/sub> o <em>U<\/em>(<em>k<\/em>)) (<em>c<\/em>) = App<sub><span style=\"text-decoration: underline;\">C<\/span><\/sub> (<em>k<\/em><sub>1<\/sub>(<em>c<\/em>), <em>k<\/em><sub>2<\/sub>(<em>c<\/em>)) = <em>k<\/em><sub>1<\/sub>(<em>c<\/em>) (<em>k<\/em><sub>2<\/sub>(<em>c<\/em>)) as well.<br>Now App<sub><span style=\"text-decoration: underline;\">C<\/span><\/sub> o <em>U<\/em>(<em>k<\/em>) = <em>U<\/em>(App o ((_ o <em>k<\/em><sub>2<\/sub>) \u00d7 id<em><sub>C<\/sub><\/em>) o \u27e8<em>k<\/em><sub>1<\/sub>, id<em><sub>C<\/sub><\/em>\u27e9) means exactly that App<sub>C<\/sub> o <em>U<\/em>(<em>k<\/em>) lifts to the <strong>C<\/strong>-morphism App o ((_ o <em>k<\/em><sub>2<\/sub>) \u00d7 id<em><sub>C<\/sub><\/em>) o \u27e8<em>k<\/em><sub>1<\/sub>, id<em><sub>C<\/sub><\/em>\u27e9, showing that App<sub><span style=\"text-decoration: underline;\">C<\/span><\/sub> is a <span style=\"text-decoration: underline;\">C<\/span>-map.<\/li>\n\n\n\n<li>As far as currification is concerned, we consider an arbitrary <span style=\"text-decoration: underline;\">C<\/span>-map <em>f<\/em> : <em>Z<\/em> \u00d7 <em>X<\/em> \u2192 <em>Y<\/em>.  (Recall that this is just a set function from <em>U<\/em>(<em>Z<\/em>) \u00d7 <em>U<\/em>(<em>X<\/em>) to <em>U<\/em>(<em>Y<\/em>), with some properties in terms of probes.)  For each <em>z<\/em> \u2208 <em>Z<\/em>, there is a function <em>f<\/em>(<em>z<\/em>, _) : <em>U<\/em>(<em>X<\/em>) \u2192 <em>U<\/em>(<em>Y<\/em>).  The first thing we do is to check that <em>f<\/em>(<em>z<\/em>, _) is a <span style=\"text-decoration: underline;\">C<\/span>-map from <em>X<\/em> to <em>Y<\/em>.<br>For every <span style=\"text-decoration: underline;\">C<\/span>-probe <em>k<\/em> : <em>C<\/em> \u2192 <em>X<\/em>, <em>f<\/em>(<em>z<\/em>, _) o <em>U<\/em>(<em>k<\/em>) = <em>f<\/em> o <em>U<\/em>(\u27e8<em>z<\/em><sup>1<\/sup> o !<em><sub>C<\/sub><\/em>, <em>k<\/em>\u27e9); since \u27e8<em>z<\/em><sup>1<\/sup> o !<em><sub>C<\/sub><\/em>, <em>k<\/em>\u27e9 : <em>C<\/em> \u2192 <em>Z<\/em> \u00d7 <em>X<\/em> is a C-probe and since <em>f<\/em> is a <span style=\"text-decoration: underline;\">C<\/span>-map, <em>f<\/em> o <em>U<\/em>(\u27e8<em>z<\/em><sup>1<\/sup> o !<em><sub>C<\/sub><\/em>, <em>k<\/em>\u27e9) is a <strong>C<\/strong>-morphism, hence also <em>f<\/em>(<em>z<\/em>, _) o <em>U<\/em>(<em>k<\/em>).<\/li>\n\n\n\n<li>Knowing this (still assuming an arbitrary C-map <em>f<\/em> : <em>Z<\/em> \u00d7 <em>X<\/em> \u2192 <em>Y<\/em>), we define \u039b<sub><span style=\"text-decoration: underline;\">C<\/span><\/sub>(<em>f<\/em>) as the function <em>z<\/em> \u21a6 <em>f<\/em>(<em>z<\/em>, _) : <em>U<\/em>(<em>Z<\/em>) \u2192 <em>U<\/em>(<em>A<\/em>).  We recall that <em>U<\/em>(<em>A<\/em>) is equal to <span style=\"text-decoration: underline;\">C<\/span>(<em>X<\/em>,<em>Y<\/em>), the set of all <span style=\"text-decoration: underline;\">C<\/span>-maps from <em>X<\/em> to <em>Y<\/em>, hence this is well-typed.  We claim that \u039b<sub><span style=\"text-decoration: underline;\">C<\/span><\/sub>(<em>f<\/em>) is itself a <span style=\"text-decoration: underline;\">C<\/span>-map.<br>To this end, let <em>k<\/em><sub>1<\/sub> : <em>C<\/em><sub>1<\/sub> \u2192 <em>Z<\/em> be an arbitrary <span style=\"text-decoration: underline;\">C<\/span>-probe with codomain <em>Z<\/em>.  We wish to check that \u039b<sub><span style=\"text-decoration: underline;\">C<\/span><\/sub>(<em>f<\/em>) o <em>U<\/em>(<em>k<\/em><sub>1<\/sub>) lifts to a <strong>C<\/strong>-morphism from <em>C<\/em><sub>1<\/sub> to <em>A<\/em>.  We use property (II) for that, with \u039b<sub><span style=\"text-decoration: underline;\">C<\/span><\/sub>(<em>f<\/em>) o <em>U<\/em>(<em>k<\/em><sub>1<\/sub>) for <em>h<\/em>.  In other words, for every <span style=\"text-decoration: underline;\">C<\/span>-probe <em>k<\/em><sub>2<\/sub> : <em>C<\/em><sub>2<\/sub> \u2192 <em>X<\/em> with codomain <em>X<\/em>, we must verify that (_ o <em>k<\/em><sub>2<\/sub>) o \u039b<sub><span style=\"text-decoration: underline;\">C<\/span><\/sub>(<em>f<\/em>) o <em>U<\/em>(<em>k<\/em><sub>1<\/sub>) is (lifts to) a <strong>C<\/strong>-morphism from <em>C<\/em><sub>1<\/sub> to <em>Y<sup><em>C<\/em><\/sup><\/em><sup><sub>2<\/sub><\/sup>.  Let us write <em>F<\/em> for (_ o <em>k<\/em><sub>2<\/sub>) o \u039b<sub><span style=\"text-decoration: underline;\">C<\/span><\/sub>(<em>f<\/em>) o <em>U<\/em>(<em>k<\/em><sub>1<\/sub>) : <em>U<\/em>(<em>C<\/em><sub>1<\/sub>) \u2192 <em>U<\/em>(<em>Y<sup><em>C<\/em><\/sup><\/em><sup><sub>2<\/sub><\/sup>).<br>We recall that (_ o <em><em>k<\/em><\/em><sub>2<\/sub>) o <em>h<\/em> is the function that maps every <em>c<\/em><sub>1<\/sub> in <em>U<\/em>(<em>C<\/em><sub>1<\/sub>) to <em>h<\/em>(<em>c<\/em><sub>1<\/sub>) o <em>U<\/em>(<em>k<\/em><sub>2<\/sub>).  Therefore <em>F<\/em> maps every <em>c<\/em><sub>1<\/sub> in <em>U<\/em>(<em>C<\/em><sub>1<\/sub>) to \u039b<sub><span style=\"text-decoration: underline;\">C<\/span><\/sub>(<em>f<\/em>) (<em>U<\/em>(<em>k<\/em><sub>1<\/sub>) (<em>c<\/em><sub>1<\/sub>)) o <em>U<\/em>(<em>k<\/em><sub>2<\/sub>).  For every <em>c<\/em><sub>1<\/sub> in <em>U<\/em>(<em>C<\/em><sub>1<\/sub>) and every <em>c<\/em><sub>2<\/sub> in <em>U<\/em>(<em>C<\/em><sub>2<\/sub>), therefore, <em>U<\/em>(<em>F<\/em> (<em>c<\/em><sub>1<\/sub>)) (<em>c<\/em><sub>2<\/sub>) = \u039b<sub><span style=\"text-decoration: underline;\">C<\/span><\/sub>(<em>f<\/em>) (<em>U<\/em>(<em>k<\/em><sub>1<\/sub>) (<em>c<\/em><sub>1<\/sub>)) (<em>U<\/em>(<em>k<\/em><sub>2<\/sub>) (<em>c<\/em><sub>2<\/sub>)).  By definition of \u039b<sub><span style=\"text-decoration: underline;\">C<\/span><\/sub>(<em>f<\/em>), we obtain that <em>U<\/em>(<em>F<\/em> (<em>c<\/em><sub>1<\/sub>)) (<em>c<\/em><sub>2<\/sub>) = <em>f<\/em> (<em>U<\/em>(<em>k<\/em><sub>1<\/sub>) (<em>c<\/em><sub>1<\/sub>)) (<em>U<\/em>(<em>k<\/em><sub>2<\/sub>) (<em>c<\/em><sub>2<\/sub>)).<br>Now, since <span style=\"text-decoration: underline;\">C<\/span> is closed under binary products, <em>C<\/em><sub>1<\/sub> \u00d7 <em>C<\/em><sub>2<\/sub> is in <span style=\"text-decoration: underline;\">C<\/span> (or rather, there is at least one product of <em>C<\/em><sub>1<\/sub> and <em>C<\/em><sub>2<\/sub> that is in <span style=\"text-decoration: underline;\">C<\/span>, and we decide to take this one for <em>C<\/em><sub>1<\/sub> \u00d7 <em>C<\/em><sub>2<\/sub>).  This implies that <em>k<\/em><sub>1<\/sub> \u00d7 <em>k<\/em><sub>2<\/sub> : <em>C<\/em><sub>1<\/sub> \u00d7 <em>C<\/em><sub>2<\/sub> \u2192 <em>Z<\/em> \u00d7 <em>X<\/em> is a <span style=\"text-decoration: underline;\">C<\/span>-probe.<br>Since <em>f<\/em> is a <span style=\"text-decoration: underline;\">C<\/span>-map, <em>f<\/em> o (<em>U<\/em>(<em>k<\/em><sub>1<\/sub>) \u00d7 <em>U<\/em>(<em>k<\/em><sub>2<\/sub>)) lifts to a <strong>C<\/strong>-morphism <em>g<\/em> : <em>C<\/em><sub>1<\/sub> \u00d7 <em>C<\/em><sub>2<\/sub> \u2192 <em>Y<\/em>.  We claim that \u039b(<em>g<\/em>) is the desired lifting of <em>F<\/em> to a <strong>C<\/strong>-morphism (from <em>C<\/em><sub>1<\/sub> to <em><em>Y<sup><em>C<\/em><\/sup><\/em><sup><sub>2<\/sub><\/sup><\/em>).<br>It suffices to show that <em>U<\/em>(\u039b(<em>g<\/em>)) = <em>F<\/em>, namely that <em>U<\/em>(\u039b(<em>g<\/em>)) (<em>c<\/em><sub>1<\/sub>) = <em>F<\/em> (<em>c<\/em><sub>1<\/sub>) for every <em>c<\/em><sub>1<\/sub> in <em>U<\/em>(<em>C<\/em><sub>1<\/sub>).  In turn, since <em>U<\/em> is faithful, it suffices to show that <em>U<\/em>(<em>U<\/em>(\u039b(<em>g<\/em>)) (<em><em>c<\/em><\/em><sub>1<\/sub>)) = <em>U<\/em>(<em>F<\/em>(<em>c<\/em><sub>1<\/sub>)), or equivalently that <em>U<\/em>(<em>U<\/em>(\u039b(<em>g<\/em>)) (<em><em>c<\/em><\/em><sub>1<\/sub>)) (<em>c<\/em><sub>2<\/sub>) = <em>U<\/em>(<em>F<\/em>(<em>c<\/em><sub>1<\/sub>)) (<em>c<\/em><sub>2<\/sub>) for every <em>c<\/em><sub>2<\/sub> \u2208 <em>C<\/em><sub>2<\/sub>.  We use Lemma C (second part), and we obtain that <em>U<\/em>(<em>U<\/em>(\u039b(<em>g<\/em>)) (<em><em>c<\/em><\/em><sub>1<\/sub>)) (<em>c<\/em><sub>2<\/sub>) = <em>U<\/em>(<em>g<\/em>) (<em><em><em>c<\/em><\/em><\/em><sub>1<\/sub>, <em>c<\/em><sub>2<\/sub>).  Now <em>U<\/em>(<em>g<\/em>) (<em><em>c<\/em><\/em><sub>1<\/sub>, <em>c<\/em><sub>2<\/sub>) =  (<em>f<\/em> o (<em>U<\/em>(<em>k<\/em><sub>1<\/sub>) \u00d7 <em>U<\/em>(<em>k<\/em><sub>2<\/sub>))) (<em><em>c<\/em><\/em><sub>1<\/sub>, <em>c<\/em><sub>2<\/sub>)= <em>f<\/em> (<em>U<\/em>(<em>k<\/em><sub>1<\/sub>) (<em><em><em>c<\/em><\/em><\/em><sub>1<\/sub>), <em>U<\/em>(<em>k<\/em><sub>2<\/sub>) (<em>c<\/em><sub>2<\/sub>)) = <em>U<\/em>(<em>F<\/em> (<em>c<\/em><sub>1<\/sub>)) (<em>c<\/em><sub>2<\/sub>), which completes the verification.<br>To sum up, \u039b(<em>g<\/em>) lifts <em>F<\/em>, so <em>F<\/em> is (lifts to) a <strong>C<\/strong>-morphism.  Since <em>k<\/em><sub>2<\/sub> : <em>C<\/em><sub>2<\/sub> \u2192 <em>X<\/em> is an arbitrary <span style=\"text-decoration: underline;\">C<\/span>-probe with codomain <em>X<\/em>, that is enough to show that \u039b<sub><span style=\"text-decoration: underline;\">C<\/span><\/sub>(<em>f<\/em>) o <em>U<\/em>(<em>k<\/em><sub>1<\/sub>) lifts to a <strong>C<\/strong>-morphism from <em>C<\/em><sub>1<\/sub> to <em>A<\/em>.  Since <em>k<\/em><sub>1<\/sub> : <em>C<\/em><sub>1<\/sub> \u2192 <em>Z<\/em> is an arbitrary <span style=\"text-decoration: underline;\">C<\/span>-probe with codomain <em>Z<\/em>, this shows that \u039b<sub><span style=\"text-decoration: underline;\">C<\/span><\/sub>(<em>f<\/em>) is a <span style=\"text-decoration: underline;\">C<\/span>-map from <em>Z<\/em> to <em>A<\/em>, as claimed.<\/li>\n\n\n\n<li>Finally, we verify the equations (\u03b2) App<span style=\"text-decoration: underline;\"><sub>C<\/sub><\/span> o (\u039b<sub><span style=\"text-decoration: underline;\">C<\/span><\/sub>(<em>f<\/em>) \u00d7 id) =&nbsp;<em>f<\/em>, (\u03b7) \u039b<sub><span style=\"text-decoration: underline;\">C<\/span><\/sub>(App<span style=\"text-decoration: underline;\"><sub>C<\/sub><\/span>) = id, and (\u03c3) \u039b<sub><span style=\"text-decoration: underline;\">C<\/span><\/sub>(<em>f<\/em>) o <em>g<\/em>&nbsp;= \u039b<sub><span style=\"text-decoration: underline;\">C<\/span><\/sub>(<em>f<\/em> o (<em>g<\/em> \u00d7 id)).  Considering that App<sub>C<\/sub> (<em>f<\/em>, <em>x<\/em>) = <em>f<\/em>(<em>x<\/em>) and \u039b<sub>C<\/sub>(<em>f<\/em>) (<em>z<\/em>) = <em>f<\/em> (<em>z<\/em>, _), this is immediate.  \u2610<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Continuing from there<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Now that we know that <strong>Map<\/strong><span style=\"text-decoration: underline;\"><sub>C<\/sub><\/span> is Cartesian-closed (under some conditions), it is not too hard to show that there is a full subcategory of <strong>C<\/strong>, consisting of so-called <span style=\"text-decoration: underline;\">C<\/span>&#8211;<em>generated objects<\/em>, which is equivalent to <strong>Map<\/strong><span style=\"text-decoration: underline;\"><sub>C<\/sub><\/span>, and therefore also Cartesian-closed.  This is done in Section 3.2 of [2].  However, and although it is not too hard, it still takes some time to explain, and we have already suffered enough for this time.  This, too, follows the Escard\u00f3-Lawson-Simpson construction pretty closely [3] (or see Section 5.6 of the <a href=\"https:\/\/www.cambridge.org\/gb\/knowledge\/isbn\/item7069109\/Non-Hausdorff%20Topology%20and%20Domain%20Theory\/?site_locale=en_GB\">book<\/a>).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A harder result is that, just like the Escard\u00f3-Lawson-Simpson construction, the <span style=\"text-decoration: underline;\">C<\/span>-generated objects turn out to be exactly the colimits of objects of <span style=\"text-decoration: underline;\">C<\/span>.  This is the topic of Section 3.3 of [2], and is also adapted from [3].  In the categorical context, however, we need an extra assumption: the class <span style=\"text-decoration: underline;\">C<\/span> must contain at least one object <em>C<\/em> such that <em>U<\/em>(<em>C<\/em>) is a non-empty set; I hope you will agree that this is a pretty mild condition.  (This condition is not needed in the ordinary Escard\u00f3-Lawson-Simpson construction because we can always reduce to the case where this condition holds in <strong>Top<\/strong>.)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Finally, all this is done assuming that <span style=\"text-decoration: underline;\">C<\/span> is strongly productive, but it is enough to assume that <span style=\"text-decoration: underline;\">C<\/span> is <em>productive<\/em>, namely that it consists of exponential objects (as for strongly productive classes), and that binary products are <span style=\"text-decoration: underline;\">C<\/span>&#8211;<em>generated<\/em>, not necessarily in <span style=\"text-decoration: underline;\">C<\/span>.  This approach of dealing with the strongly productive case first, then reducing the productive case to it, is imitated from the <a href=\"https:\/\/www.cambridge.org\/gb\/knowledge\/isbn\/item7069109\/Non-Hausdorff%20Topology%20and%20Domain%20Theory\/?site_locale=en_GB\">book<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Anyway, I may describe those other results another time, or not, who knows.  I would like to conclude by saying that, although I was pretty happy to see that the Escard\u00f3-Lawson-Simpson construction lifts conveniently beyond topological spaces, and to the setting of topological constructs, I am a bit frustrated that I could not extend it to topological <em>functors<\/em> with values in a more general category <strong>D<\/strong> than <strong>Set<\/strong>.  For example, there is a topological functor (not a construct) from the category of streams to <strong>Top<\/strong>, and such a more general result would perhaps give a more straightforward construction of the various Cartesian-closed categories of streams that I am building in [2].<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>J\u01d0r\u00ed Ad\u00e1mek, Horst Herrlich, and George E. Strecker.  Abstract and Concrete Categories.  The Joy of Cats.  John Wiley and Sons, 1990.  <a href=\"https:\/\/katmat.math.uni-bremen.de\/acc\">Online edition<\/a>, 2004.<\/li>\n\n\n\n<li>Jean Goubault-Larrecq.  <a href=\"https:\/\/hal.inria.fr\/hal-03189894\/\">Exponentiable streams and prestreams<\/a>.  <a href=\"https:\/\/link.springer.com\/journal\/10485\"><em>Applied Categorical Structures<\/em><\/a>&nbsp;22,&nbsp;pages&nbsp;515\u2013549, 2014.  The published version, available from <a href=\"https:\/\/link.springer.com\/article\/10.1007\/s10485-013-9315-x\">Springer Link<\/a>, contains two mistakes, which are repaired in the <a href=\"https:\/\/hal.inria.fr\/hal-03189894\/\">HAL report<\/a>.<\/li>\n\n\n\n<li>Mart\u00edn Escard\u00f3, Jimmie Lawson, and Alex Simpson. <a href=\"https:\/\/www.sciencedirect.com\/science\/article\/pii\/S0166864104000550?via%3Dihub\">Comparing Cartesian Closed Categories of (Core) Compactly Generated Spaces<\/a>. <a href=\"https:\/\/www.sciencedirect.com\/journal\/topology-and-its-applications\">Topology and Its Applications<\/a>, <a href=\"https:\/\/www.sciencedirect.com\/journal\/topology-and-its-applications\/vol\/143\/issue\/1\">143(1\u20133)<\/a>:105\u2013146, 2004.<\/li>\n<\/ol>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"alignright is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/projects.lsv.ens-paris-saclay.fr\/topology\/wp-content\/uploads\/2016\/08\/jgl-2011.png\" alt=\"jgl-2011\" class=\"wp-image-993\" width=\"60\" height=\"83\"\/><\/figure>\n<\/div>\n\n\n<p class=\"wp-block-paragraph\">\u2014 <a href=\"https:\/\/www.lsv.ens-paris-saclay.fr\/~goubault\/?l=en\">Jean Goubault-Larrecq<\/a> (April 20th, 2023)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>A while back, I gave an introduction to topological functors, and I promised I would post one or more followups. So here we are. I will explain how the construction of the Cartesian-closed category of C-generated topological spaces due to &hellip; <a href=\"https:\/\/projects.lsv.ens-paris-saclay.fr\/topology\/?page_id=6613\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-6613","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/projects.lsv.ens-paris-saclay.fr\/topology\/index.php?rest_route=\/wp\/v2\/pages\/6613","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/projects.lsv.ens-paris-saclay.fr\/topology\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/projects.lsv.ens-paris-saclay.fr\/topology\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/projects.lsv.ens-paris-saclay.fr\/topology\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/projects.lsv.ens-paris-saclay.fr\/topology\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=6613"}],"version-history":[{"count":70,"href":"https:\/\/projects.lsv.ens-paris-saclay.fr\/topology\/index.php?rest_route=\/wp\/v2\/pages\/6613\/revisions"}],"predecessor-version":[{"id":6734,"href":"https:\/\/projects.lsv.ens-paris-saclay.fr\/topology\/index.php?rest_route=\/wp\/v2\/pages\/6613\/revisions\/6734"}],"wp:attachment":[{"href":"https:\/\/projects.lsv.ens-paris-saclay.fr\/topology\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=6613"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}