{"id":2102,"date":"2019-11-20T11:11:41","date_gmt":"2019-11-20T10:11:41","guid":{"rendered":"https:\/\/projects.lsv.ens-paris-saclay.fr\/topology\/?page_id=2102"},"modified":"2022-05-17T10:35:15","modified_gmt":"2022-05-17T08:35:15","slug":"quotients-colimits-of-dcpos-and-related-matters","status":"publish","type":"page","link":"https:\/\/projects.lsv.ens-paris-saclay.fr\/topology\/?page_id=2102","title":{"rendered":"Quotients, colimits of dcpos, and related matters"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Let us start with the following problem.  Let <em>X<\/em> be a dcpo, and \u2261 be an equivalence relation on <em>X<\/em>.  What is the quotient dcpo <em>X<\/em>\/\u2261?  One may think that it is built in the usual way, taking the equivalence classes [<em>x<\/em>] of elements <em>x<\/em> of <em>X<\/em> with respect to \u2261, and ordering them in a suitable way.  This approach fails miserably.  In order to understand why, we should first understand what a quotient is.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">What dcpo quotients should be<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">We should really think categorically.  Although the following lacks some of the abstract beauty of category theory, the quotient dcpo <em>X<\/em>\/\u2261 should be defined by a <em>universal property<\/em>: it should be a dcpo, there should be a continuous map <em>q<\/em> : <em>X<\/em> \u2192 <em>X<\/em>\/\u2261 (intuitively, mapping <em>x<\/em> to its equivalence class) that is compatible with \u2261 (namely, for all <em>x<\/em>, <em>x&#8217;<\/em> such that <em>x<\/em>\u2261<em>x&#8217;<\/em>, <em>q<\/em>(<em>x<\/em>)=<em>q(x&#8217;<\/em>)), and the universal property is that, for every dcpo <em>Y<\/em>, for every continuous map <em>f<\/em> : <em>X<\/em> \u2192 <em>Y<\/em> that is compatible with \u2261, there should be a unique continuous map <em>f&#8217;<\/em> : <em>X<\/em>\/\u2261 \u2192 <em>Y<\/em> such that <em>f&#8217;<\/em> o <em>q<\/em> = <em>f<\/em>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Now this is a clean property, but it is not clear that <em>X<\/em>\/\u2261 exists.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The fact that dcpo quotients (and, more generally, colimits, see below) exist has been proved a number of times.  Jose Meseguer [1] proved it for \u03c9-dcpos in only a few lines, using extremal epi-mono factorizations and well-poweredness.  A. Fiech [2] proved it by elementary arguments, and also considers the case of algebraic dcpos.  He also says that A. Jung also had a proof.  However that proof is referenced as &#8220;Jung,&nbsp;A.&nbsp;(1992) Private notes communicated by Michael Huth in April 1992&#8221;, which makes it harder to obtain.  Let me venture that the way I am going to build them in this post is what A. Jung had in mind.  The last proof I know is as a brief corollary of general constructions in [3], a paper I will talk more about below.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">How not to build dcpo quotients<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Let me explain the obvious, but wrong way, of constructing <em>X<\/em>\/\u2261.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">We first build the quotient of <em>X<\/em> by \u2261 in <strong>Pos<\/strong>, the category of posets.  In general, that quotient exists for every poset <em>X<\/em>.  The map <em>q<\/em> sends every element <em>x<\/em> to its equivalence class [<em>x<\/em>], and the ordering on the quotient is the coarsest ordering \u2291 such that <em>x<\/em>\u2264<em>x&#8217;<\/em> implies [<em>x<\/em>]\u2291[<em>x&#8217;<\/em>], for all <em>x<\/em>, <em>x&#8217;<\/em> in <em>X<\/em>.  Explicitly, [<em>x<\/em>]\u2291[<em>x&#8217;<\/em>] if and only if there are finitely many elements <em>x<sub>i<\/sub><\/em> and <em>x&#8217;<sub>i<\/sub><\/em> such that <em>x<\/em>\u2261<em>x<\/em><sub>0<\/sub>\u2264<em>x<\/em>&#8216;<sub>0<\/sub>\u2261<em>x<\/em><sub>1<\/sub>\u2264<em>x<\/em>&#8216;<sub>1<\/sub>\u2261&#8230;\u2261x<em><sub>n<\/sub><\/em>\u2264<em>x&#8217;<sub>n<\/sub><\/em>\u2261<em>x&#8217;<\/em>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Oops&#8230; that is not an ordering in general! only a preordering, so we have to take a further quotient.  I will not say more, except to say that even if we do so, the result will in general fail to be a dcpo, so something more has to be done again.  (Consider the dcpo obtained as the disjoint sum of countably many copies of Sierpi\u0144ski space <strong>S<\/strong> = {0 &lt; 1}, and take the equivalence relation which equates the element 1 of one copy of <strong>S<\/strong> with the element 0 of the next copy.  Up to isomorphism, you will obtain <strong>N<\/strong> with its usual ordering, and you should at least add an element at infinity to turn it into a dcpo.)<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Building dcpo quotients: the first step<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Here is now an elementary way of building <em>X<\/em>\/\u2261, inspired by A. Jung, M.A. Moshier, and S. Vickers [3].  They solve a much more general problem, and they consider dcpo quotients in Section 6.1, although somewhat cursorily.  I will briefly say something about this paper at the end of this post.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Hence let <em>X<\/em> be a poset.  While we are interested in dcpos, it is equally easy, and useful, to build a dcpo quotient out of a poset.  We will see the advantage of doing so near the end of this post.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Let also \u2261 be an equivalence relation on <em>X<\/em>.  Let me recall that we wish to find a dcpo <em>X<\/em>\/\u2261, with:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>a Scott-continuous map <em>q<\/em> : <em>X<\/em> \u2192 <em>X<\/em>\/\u2261,<\/li><li>that is compatible with \u2261,<\/li><li>and satisfying the universal property that, for every dcpo <em>Y<\/em>, for every Scott-continuous map <em>f<\/em> : <em>X<\/em> \u2192 <em>Y<\/em> that is compatible with \u2261, there is a unique continuous map <em>f&#8217;<\/em> : <em>X<\/em>\/\u2261 \u2192 <em>Y<\/em> such that <em>f&#8217;<\/em> o <em>q<\/em> = <em>f<\/em>. <\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Let us call a subset <em>C<\/em> of <em>X<\/em> <em>saturated<\/em> if and only if for every <em>x<\/em> in <em>C<\/em>, for every <em>x&#8217;<\/em>\u2261<em>x<\/em>, <em>x&#8217;<\/em> is also in <em>C<\/em>.  We define <strong>H<\/strong><sup>\u2261<\/sup>(<em>X<\/em>) as the set of all saturated Scott-closed subsets of <em>X<\/em>.  Let us order it by inclusion.  This is a variant of the <a href=\"https:\/\/projects.lsv.ens-paris-saclay.fr\/topology\/?page_id=585\">Hoare powerdomain<\/a>.  It is easy to see that the intersection of any family of saturated Scott-closed sets is again saturated and Scott-closed.  It follows that <strong>H<\/strong><sup>\u2261<\/sup>(<em>X<\/em>) is a complete lattice, in which infima are computed as intersections.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Suprema are more complicated to describe explicitly.  Intuitively, one would compute the union, then take the closure, then add all the elements equivalent to elements in the latter set, then take the closure again, then again add all equivalent elements, &#8230;, and continue this way into the transfinite.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A simpler, but equivalent, description is to realize that every subset <em>A<\/em> of <em>X<\/em> has a <em>saturated closure<\/em> cl<sup>\u2261<\/sup>(<em>A<\/em>): this is the smallest saturated closed subset of <em>X<\/em> that contains <em>A<\/em>, and it is obtained by taking the intersection of all the saturated closed sets that contain <em>A<\/em>.  This is what we were trying to build by taking the closure, then adding all equivalent elements, and repeating the process transfinitely.  Then the supremum of a family of elements of <strong>H<\/strong><sup>\u2261<\/sup>(<em>X<\/em>) is the saturated closure of the union of the elements of the family.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">There is a map <em>q<\/em> : <em>X<\/em> \u2192 <strong>H<\/strong><sup>\u2261<\/sup>(<em>X<\/em>), defined by <em>q<\/em>(<em>x<\/em>) = cl<sup>\u2261<\/sup>({<em>x<\/em>}).  Good.  It is monotonic: if <em>x<\/em>\u2264<em>x&#8217;<\/em>, then <em>x<\/em> is in cl<sup>\u2261<\/sup>({<em>x<\/em>&#8216;}), so the whole of cl<sup>\u2261<\/sup>({<em>x<\/em>}) is included in cl<sup>\u2261<\/sup>({<em>x<\/em>&#8216;}).  By the same sort of argument, if <em>x<\/em>\u2261<em>x&#8217;<\/em>, then <em>q<\/em>(<em>x<\/em>)\u2264<em>q<\/em>(<em>x&#8217;<\/em>) as well, hence <em>q<\/em>(<em>x<\/em>)=<em>q<\/em>(<em>x&#8217;<\/em>), by symmetry: so <em>q<\/em> is compatible with \u2261.  Very good.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">We claim that <em>q<\/em> is Scott-continuous.  We consider a directed family (<em>x<\/em><sub><em>i<\/em><\/sub>)<sub><em>i<\/em> \u2208 <em>I<\/em><\/sub> in <em>X<\/em>, with some element <em>x<\/em> as a supremum.  Since <em>q<\/em> is monotonic, sup<sub><em>i<\/em> \u2208 <em>I<\/em><\/sub> <em>q<\/em>(<em>x<\/em><sub><em>i<\/em><\/sub>) \u2286 <em>q<\/em>(<em>x<\/em>).  In the reverse direction, we note that every <em>x<\/em><sub><em>i<\/em><\/sub> is in <em>q<\/em>(<em>x<\/em><sub><em>i<\/em><\/sub>), hence in sup<sub><em>i<\/em> \u2208 <em>I<\/em><\/sub> <em>q<\/em>(<em>x<\/em><sub><em>i<\/em><\/sub>), and because the latter is Scott-closed, it must therefore contain <em>x<\/em> as well.  It follows that sup<sub><em>i<\/em> \u2208 <em>I<\/em><\/sub> <em>q<\/em>(<em>x<\/em><sub><em>i<\/em><\/sub>) is a saturated closed subset of <em>X<\/em> that contains <em>x<\/em>, so <em>q<\/em>(<em>x<\/em>) = cl<sup>\u2261<\/sup>({<em>x<\/em>}) is included in it, being the smallest saturated closed subset of <em>X<\/em> that contains <em>x<\/em>.  We conclude that <em>q<\/em>(<em>x<\/em>) \u2286 sup<sub><em>i<\/em> \u2208 <em>I<\/em><\/sub> <em>q<\/em>(<em>x<\/em><sub><em>i<\/em><\/sub>).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">So far so good&#8230; but <strong>H<\/strong><sup>\u2261<\/sup>(<em>X<\/em>) is <em>not<\/em> the quotient dcpo we are looking for.  It is way too big.  For example, if you start from <em>X<\/em>=<strong>N<\/strong>, with equality as ordering, and with equality for \u2261, then we expect the dcpo quotient to be <strong>N<\/strong> itself, but <strong>H<\/strong><sup>\u2261<\/sup>(<em>X<\/em>) is the whole powerset of <em>X<\/em>, which is not even countable.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Building dcpo quotients: the second step<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">But we can <em>extract<\/em> the required dcpo from <strong>H<\/strong><sup>\u2261<\/sup>(<em>X<\/em>).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In every dcpo <em>Z<\/em>, for every  subset <em>A<\/em> of <em>Z<\/em>, there is a smallest subdcpo of <em>Z<\/em> containing <em>A<\/em>.  This is obtained as the intersection of all subdcpos of <em>Z<\/em> that contain <em>A<\/em>, and is sometimes called the inductive closure of <em>A<\/em> in <em>Z<\/em>.  I will call it the <em>d-closure<\/em> of <em>A<\/em>, for reasons that appear in the appendix to this post.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Again, we could try to build the d-closure of <em>A<\/em> in <em>Z<\/em> by taking all the elements of <em>A<\/em>, then adding all suprema of directed families of elements of <em>A<\/em>, then adding all suprema of directed families of elements that we have built until now, and continuing transfinitely.  (In general, that process does not stop after any finite number of steps, in fact not even after any fixed ordinal-valued number of steps.)  That construction is more intuitive, perhaps, more constructive even, but less elementary.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">We are now in a position to build the dcpo quotient <em>X<\/em>\/\u2261:<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\"><p>We define <em>X<\/em>\/\u2261 as the d-closure of the image Im <em>q<\/em> of <em>q<\/em> in <strong>H<\/strong><sup>\u2261<\/sup>(<em>X<\/em>).<\/p><\/blockquote>\n\n\n\n<h2 class=\"wp-block-heading\">The proof<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Let us check that <em>X<\/em>\/\u2261 and <em>q<\/em> satisfy all the required properties.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>X<\/em>\/\u2261 is a dcpo&#8230; vacuously.  The map <em>q<\/em>  : <em>X<\/em> \u2192 <strong>H<\/strong><sup>\u2261<\/sup>(<em>X<\/em>) takes its values in <em>X<\/em>\/\u2261&#8230; vacuously again.  We can then consider <em>q<\/em> as a map from <em>X<\/em> to <em>X<\/em>\/\u2261.  It is Scott-continuous, and compatible with \u2261.  It only remains to check the universal property.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Let  <em>f<\/em> : <em>X<\/em> \u2192 <em>Y<\/em> be a Scott-continuous map that is compatible with \u2261, where <em>Y<\/em> is a dcpo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">We can build a map <em>g<\/em> : <strong>H<\/strong><sup>\u2261<\/sup>(<em>X<\/em>) \u2192 <strong>H<\/strong>(<em>Y<\/em>), where <strong>H<\/strong>(<em>Y<\/em>) is the complete lattice of Scott-closed subsets of <em>Y<\/em> ordered by inclusion, by <em>g<\/em>(<em>C<\/em>) = cl(<em>f<\/em>[<em>C<\/em>]) (the Scott-closure of the image of <em>C<\/em> by <em>f<\/em>).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">We claim that the map <em>g<\/em> is Scott-continuous.  Monotonicity is clear.  Preservation of directed suprema is harder, but proceeds along standard lines\u2014up to a small twist.  Let (<em>C<\/em><sub><em>i<\/em><\/sub>)<sub><em>i<\/em> \u2208 <em>I<\/em><\/sub> be a directed family in <strong>H<\/strong><sup>\u2261<\/sup>(<em>X<\/em>), and let <em>C<\/em> = cl<sup>\u2261<\/sup>(\u222a<sub><em>i<\/em><\/sub> <sub>\u2208 <em>I<\/em><\/sub> <em>C<\/em><sub><em>i<\/em><\/sub>) be its supremum in <strong>H<\/strong><sup>\u2261<\/sup>(<em>X<\/em>).  Given that <span style=\"background-color: rgb(232, 234, 235);\"><em>g<\/em><\/span> is monotonic, we only have to show that <em>g<\/em>(<em>C<\/em>) \u2286 sup<sub><em>i<\/em><\/sub> <sub>\u2208 <em>I<\/em><\/sub> <em>g<\/em>(<em>C<\/em><sub><em>i<\/em><\/sub>) (= cl (\u222a<sub><em>i<\/em><\/sub> <sub>\u2208 <em>I<\/em><\/sub> <em>g<\/em>(<em>C<\/em><sub><em>i<\/em><\/sub>))).  The easiest way to do this is to consider any closed subset <em>D<\/em> of <em>Y<\/em> that contains cl (\u222a<sub><em>i<\/em><\/sub> <sub>\u2208 <em>I<\/em><\/sub> <em>g<\/em>(<em>C<\/em><sub><em>i<\/em><\/sub>)), and to show that it contains <em>g<\/em>(<em>C<\/em>).  Any such <em>D<\/em> must contain every <em>g<\/em>(<em>C<\/em><sub><em>i<\/em><\/sub>), hence every image <em>f<\/em>[<em>C<\/em><sub><em>i<\/em><\/sub>].  Hence every <em>C<\/em><sub><em>i<\/em><\/sub> is included in <em>f<\/em><sup>-1<\/sup>(<em>D<\/em>), so \u222a<sub><em>i<\/em><\/sub> <sub>\u2208 <em>I<\/em><\/sub> <em>C<\/em><sub><em>i<\/em><\/sub> is also included in <em>f<\/em><sup>-1<\/sup>(<em>D<\/em>). Now <em>f<\/em><sup>-1<\/sup>(<em>D<\/em>) is closed (since <em>f<\/em> is continuous) and saturated (since <em>f<\/em> is compatible\u2014this is the twist, compared to the standard argument), so it must also contain cl<sup>\u2261<\/sup>(\u222a<sub><em>i<\/em><\/sub> <sub>\u2208 <em>I<\/em><\/sub> <em>C<\/em><sub><em>i<\/em><\/sub>), namely, <em>C<\/em>.  It follows that <em>f<\/em>[<em>C<\/em>] is included in <em>D<\/em>, and therefore, that cl(<em>f<\/em>[<em>C<\/em>]) = <em>g<\/em>(<em>C<\/em>) is included in <em>D<\/em>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Let <em>A<\/em> be the collection of elements <em>C<\/em> of <strong>H<\/strong><sup>\u2261<\/sup>(<em>X<\/em>) such that <em>g<\/em>(<em>C<\/em>) is the downward closure of a single point in <em>Y<\/em>.  If that is the case, we call that point <em>f&#8217;<\/em>(<em>C<\/em>).  It is determined uniquely, because \u2193<em>y<\/em>=\u2193<em>y&#8217;<\/em> in <em>Y<\/em> implies <em>y<\/em>=<em>y&#8217;<\/em>.  (Yes, <em>f&#8217;<\/em> will be the function we are looking for.)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">We first observe that <em>A<\/em> contains Im <em>q<\/em>.  In other words, we claim that for every <em>x<\/em> in <em>X<\/em>, <em>g<\/em>(<em>q<\/em>(<em>x<\/em>)) is equal to the downward closure of some point of <em>Y<\/em>.  In fact, we claim that <em>g<\/em>(<em>q<\/em>(<em>x<\/em>))=\u2193<em>f<\/em>(<em>x<\/em>).  Let <em>C<\/em> = <em>q<\/em>(<em>x<\/em>) (= cl<sup>\u2261<\/sup>({<em>x<\/em>})).  The point <em>f<\/em>(<em>x<\/em>) is in <em>f<\/em>[<em>C<\/em>], hence in cl(<em>f<\/em>[<em>C<\/em>]) = <em>g<\/em>(<em>C<\/em>).  Hence \u2193<em>f<\/em>(<em>x<\/em>) is included in <em>g<\/em>(<em>q<\/em>(<em>x<\/em>)).  In order to show the reverse inclusion, it is enough to show that <em>f<\/em>[<em>C<\/em>] is included in \u2193<em>f<\/em>(<em>x<\/em>), since the latter is closed; equivalently, we need to show that cl<sup>\u2261<\/sup>({<em>x<\/em>}) is included in <em>f<\/em><sup>-1<\/sup>(\u2193<em>f<\/em>(<em>x<\/em>)), and that is clear since the latter contains <em>x<\/em>, is closed (since <em>f<\/em> is continuous), and is saturated (since <em>f<\/em> is compatible).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Next, we observe that <em>A<\/em> is a subdcpo of <strong>H<\/strong><sup>\u2261<\/sup>(<em>X<\/em>).  Imagine that we are given a directed family (<em>C<\/em><sub><em>i<\/em><\/sub>)<sub><em>i<\/em> \u2208 <em>I<\/em><\/sub> in <em>A<\/em>, and let <em>C<\/em> = cl<sup>\u2261<\/sup>(\u222a<sub><em>i<\/em><\/sub> <sub>\u2208 <em>I<\/em><\/sub> <em>C<\/em><sub><em>i<\/em><\/sub>) be its supremum in <strong>H<\/strong><sup>\u2261<\/sup>(<em>X<\/em>).  For every <em>i<\/em> in <em>I<\/em>, <em>g<\/em>(<em>C<\/em><sub><em>i<\/em><\/sub>)=\u2193<em>f&#8217;<\/em>(<em>C<\/em><sub><em>i<\/em><\/sub>), and since <em>g<\/em> is Scott-continuous, <em>g<\/em>(<em>C<\/em>) = cl(\u222a<sub><em>i<\/em><\/sub> <sub>\u2208 <em>I<\/em><\/sub> <em>g<\/em>(<em>C<\/em><sub><em>i<\/em><\/sub>)) = cl(\u222a<sub><em>i<\/em><\/sub> <sub>\u2208 <em>I<\/em><\/sub> \u2193<em>f&#8217;<\/em>(<em>C<\/em><sub><em>i<\/em><\/sub>)), and we can check that this is the downward closure of sup<sub><em>i<\/em><\/sub> <sub>\u2208 <em>I<\/em><\/sub> <em>f&#8217;<\/em>(<em>C<\/em><sub><em>i<\/em><\/sub>).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Since <em>A<\/em> is a subdcpo of <strong>H<\/strong><sup>\u2261<\/sup>(<em>X<\/em>) and <em>A<\/em> contains Im <em>g<\/em>, <em>A<\/em> must contain its d-closure <em>X<\/em>\/\u2261.  Since <em>f&#8217;<\/em> is defined as a map from <em>A<\/em> to <em>Y<\/em>, by restriction we obtain a map (still written <em>f&#8217;<\/em>) from <em>X<\/em>\/\u2261 to <em>Y.<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">We claim that <em>f&#8217;<\/em> is continuous.  It is clearly monotonic.  Given any directed family (<em>C<\/em><sub><em>i<\/em><\/sub>)<sub><em>i<\/em> \u2208 <em>I<\/em><\/sub> in <em>A<\/em>, with supremum <em>C<\/em> = cl<sup>\u2261<\/sup>(\u222a<sub><em>i<\/em><\/sub> <sub>\u2208 <em>I<\/em><\/sub> <em>C<\/em><sub><em>i<\/em><\/sub>) (in <em>A<\/em>), <em>g<\/em>(<em>C<\/em>) = \u2193<em>f&#8217;<\/em>(<em>C<\/em>) is also  equal to cl(\u222a<sub><em>i<\/em><\/sub> <sub>\u2208 <em>I<\/em><\/sub> <em>g<\/em>(<em>C<\/em><sub><em>i<\/em><\/sub>)) = cl(\u222a<sub><em>i<\/em><\/sub> <sub>\u2208 <em>I<\/em><\/sub> \u2193<em>f&#8217;<\/em>(<em>C<\/em><sub><em>i<\/em><\/sub>)) = \u2193sup<sub><em>i<\/em><\/sub> <sub>\u2208 <em>I<\/em><\/sub> <em>f&#8217;<\/em>(<em>C<\/em><sub><em>i<\/em><\/sub>), since <em>g<\/em> is Scott-continuous, and that show that <em>f&#8217;<\/em> indeed preserves directed suprema.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Finally, <em>f&#8217;<\/em>(<em>q<\/em>(<em>x<\/em>)) = <em>f<\/em>(<em>x<\/em>) for every <em>x<\/em> in <em>X<\/em>: this is how we showed that <em>A<\/em> contains Im <em>q<\/em> a few lines ago.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In order to conclude, it only remains to show that <em>f&#8217;<\/em> is unique.  Hence we imagine that we have another continuous map <em>f&#8221;<\/em> : <em>X<\/em>\/\u2261 \u2192 <em>Y<\/em> such that <em>f&#8221;<\/em> o <em>q<\/em> = <em>f<\/em>.  Let <em>B<\/em> be the subset of elements <em>C<\/em> of <strong>H<\/strong><sup>\u2261<\/sup>(<em>X<\/em>) such that <em>f&#8221;<\/em>(<em>C<\/em>)=<em>f&#8217;<\/em>(<em>C<\/em>).  <em>B<\/em> clearly contains Im <em>q<\/em>, and is a subdcpo of <strong>H<\/strong><sup>\u2261<\/sup>(<em>X<\/em>).  Hence <em>B<\/em> contains <em>X<\/em>\/\u2261.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">We are done!  X\/\u2261 is the dcpo quotient of <em>X<\/em> by \u2261.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Coequalizers in Dcpo<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Let us consider two Scott-continuous maps <em>f<\/em>, <em>g<\/em> : <em>X<\/em> \u2192 <em>Y<\/em> between dcpos.  There is a coarsest equivalence relation \u2261 on <em>Y<\/em> such that, for every <em>x<\/em> in <em>X<\/em>, <em>f<\/em>(<em>x<\/em>)\u2261<em>g<\/em>(<em>x<\/em>).  Explicitly, <em>y<\/em>\u2261<em>y&#8217;<\/em> if and only if <em>y<\/em>=<em>y&#8217;<\/em> or there are finitely many elements <em>x<sub>i<\/sub><\/em> such that <em>y<\/em>=<em>f<\/em>(<em>x<\/em><sub>0<\/sub>), <em>g<\/em>(<em>x<\/em><sub>0<\/sub>)=<em>f<\/em>(<em>x<\/em><sub>1<\/sub>), &#8230;, <em>g<\/em>(<em>x<sub>n<\/sub><\/em><sub>-1<\/sub>)=<em>f<\/em>(<em>x<sub>n<\/sub><\/em>), and <em>g(x<sub>n<\/sub><\/em>)=<em>y&#8217;<\/em>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">We have just build a dcpo <em>Y<\/em>\/\u2261 and a Scott-continuous map <em>q<\/em> : <em>Y<\/em> \u2192 <em>Y<\/em>\/\u2261, satisfying a certain universal property.  Given any Scott-continuous map <em>h<\/em> : <em>Y<\/em> \u2192 <em>Z<\/em> such that <em>h<\/em> o <em>f<\/em>=<em>h<\/em> o <em>g<\/em>, where <em>Z<\/em> is a dcpo, it is easy to see that <em>h<\/em> is compatible, so there is a unique Scott-continuous map <em>h&#8217;<\/em> : <em>Y<\/em>\/\u2261 \u2192 <em>Z<\/em> such that <em>h<\/em> = <em>h&#8217;<\/em> o <em>q<\/em>.  It follows that <em>q<\/em> : <em>Y<\/em> \u2192 <em>Y<\/em>\/\u2261 is the <em>coequalizer<\/em> of the pair of maps <em>f<\/em>, <em>g<\/em>.  (See Section 4.12.3 in the book for coequalizers, and compare this construction with Example 4.12.11 there.)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In particular, coequalizers exist in the category <strong>Dcpo<\/strong> of dcpos.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Colimits in Dcpo<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Let <em>F<\/em> be a diagram in the category <strong>Dcpo<\/strong> of dcpos.  Let me recall that this is just a functor from a small category <em>I<\/em> to <span style=\"font-weight: 600; background-color: rgb(232, 234, 235);\">Dcpo<\/span>.  The colimit of <em>F<\/em>, if it exists, is the universal cocone over <em>F<\/em> (see Section 4.12.3 in the book).  A coequalizer is a particular form of colimit, and conversely, every colimit arises as a coequalizer of a (generally infinite) coproduct, provided all those coproducts exist.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Coproducts in <strong>Dcpo<\/strong> do indeed exist, and contrarily to quotients, they are very simple: they are just disjoint unions, and only elements in the same summand can be compared.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Hence all colimits exist in <strong>Dcpo<\/strong>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Explicitly, given a diagram <em>F<\/em> : <em>I<\/em> \u2192 <strong>Dcpo<\/strong> as above, we take the coproduct <em>X<\/em> of all the dcpos <em>F<\/em>(<em>A<\/em>), where <em>A<\/em> ranges over the objects of <em>I<\/em>.  This is the set of pairs (<em>A<\/em>, <em>x<\/em>), where <em>A<\/em> ranges over the objets of <em>I<\/em>, and <em>x<\/em> in <em>F<\/em>(<em>A<\/em>), ordered by (<em>A<\/em>, <em>x<\/em>) \u2264 (<em>B<\/em>, <em>y<\/em>) iff <em>A<\/em>=<em>B<\/em> and <em>x<\/em>\u2264<em>y<\/em>.  We define an equivalence relation \u2261 on <em>X<\/em> as the coarsest one such that, for every morphism <em>j<\/em> : <em>A<\/em> \u2192 <em>B<\/em> in <em>I<\/em>, for every <em>x<\/em> in <em>F<\/em>(<em>A<\/em>), (<em>A<\/em>, <em>x<\/em>) \u2261 (<em>B<\/em>, <em>F<\/em>(<em>j<\/em>) (<em>x<\/em>)).  And voil\u00e0, the colimit of <em>F<\/em> in <strong>Dcpo<\/strong> is our dcpo quotient <em>X<\/em>\/\u2261.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">D-completions<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Remember that we have built our dcpo quotient <em>X<\/em>\/\u2261 from a general p<em>oset<\/em> <em>X<\/em>, not a dcpo.  In the apparently trivial case where \u2261 is the equality relation =, we have therefore built a dcpo X\/= (yes, the notation is a bit silly) with:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>a Scott-continuous map <em>q<\/em> : <em>X<\/em> \u2192 <em>X<\/em>\/=,<\/li><li>satisfying the universal property that, for every dcpo <em>Y<\/em>, for every Scott-continuous map <em>f<\/em> : <em>X<\/em> \u2192 <em>Y<\/em>, there is a unique continuous map <em>f&#8217;<\/em> : <em>X<\/em>\/= \u2192 <em>Y<\/em> such that <em>f&#8217;<\/em> o <em>q<\/em> = <em>f<\/em>. <\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">(We have omitted the compatibility conditions, since they are vacuously true here.)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Such a dcpo <em>X<\/em>\/= is called a <em>dcpo completion<\/em>, or <em>d-completion<\/em>, of the poset <em>X<\/em>.  That d-completions always exist (and are unique up to isomorphism) was first shown by D. Zhao and T. Fan [5], and the construction was analyzed and put in context by K. Keimel and J. Lawson [4].  (The Zhao-Fan result seems to predate [4], although the publication dates tend to indicate the contrary, as can be seen by the fact that Keimel and Lawson cite [5] as a preprint.)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">I will not say that we have obtained the d-completion for free: we have sweated a bit to obtain dcpo quotients in the first place!  But there was nothing more to be done than to assume <em>X<\/em> to be a poset instead of a dcpo in order to obtain d-completions as a byproduct of dcpo quotients.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If you read [5], you will probably realize that our strategy to produce dcpo quotients is the same as Keimel and Lawson&#8217;s approach to building the d-completion, too.  The appendix on d-closures at the end of this post is taken from [5], too.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Dcpo presentations<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Near the beginning of this post, I had said that my way of building dcpo quotients is inspired by A. Jung, M. A. Moshier, and S. Vickers [3].  Their setting is rather more general.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">They start with so-called <em>dcpo presentations<\/em>.  A dcpo presentation is a preordered set <em>P<\/em> together with a set of so-called <em>covers<\/em>, which are pairs <em>x<\/em> \u22b2 <em>D<\/em> of a point <em>x<\/em> in <em>P<\/em> and of a directed family in <em>P<\/em>.  One should think of such a cover as a specification that we would like to make <em>x<\/em> be below the supremum of <em>D<\/em>.  The free dcpo on a dcpo presentation is a pair of a dcpo <span style=\"background-color: rgb(232, 234, 235);\"><em>Y<\/em><\/span> and of a monotonic map <em>q<\/em> : <em>P<\/em> \u2192 <em>Y<\/em> such that:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><em>q<\/em> preserves covers, namely for every cover <em>x<\/em> \u22b2 <em>D<\/em>, <em>q<\/em>(<em>x<\/em>) \u2264 sup <em>q<\/em>[<em>D<\/em>],<\/li><li>and <em>q<\/em> is universal with this property: for every monotonic map <em>f<\/em> : <em>P<\/em> \u2192 <em>Z<\/em> to a dcpo <em>Z<\/em> that preserves covers, there is a unique Scott-continuous map <em>f&#8217;<\/em> : <em>Y<\/em> \u2192 <em>Z<\/em> such that <em>f<\/em> = <em>f&#8217;<\/em> o <em>q<\/em>.<\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">The main point of [3] is to show that such a free dcpo always exists.  (I may talk about it another time, but I think you already have an idea how this can be built.)  Section 6.1 of this paper argues that we obtain dcpo colimits from that construction.  I will argue for dcpo quotients: <em>X<\/em>\/\u2261 is obtained by taking <em>P<\/em>=<em>X<\/em>, with covers all pairs <em>x<\/em> \u22b2 <em>D<\/em> such that sup <em>D<\/em> exists and is equivalent to <em>x<\/em>.  They build the dcpo <em>Y<\/em> as a least subdcpo of a complete lattice of so-called C-ideals, and one can check that their C-ideals in that case are exactly the saturated Scott-closed subset.  Hence what we have done is really a special case of their construction.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Appendix: the d-topology<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Here is a purely topological description of the d-closure.  Let me remind you that the d-closure of a subset <em>A<\/em> of a dcpo <em>Z<\/em> is the smallest subdcpo of <em>Z<\/em> that contains <em>A<\/em>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">First note that the d-closure is <em>not<\/em> the Scott-closure of <em>A<\/em>, because we are not requiring it to be downwards closed.  Instead, we define the <em>d-topology<\/em> as the topology whose closed sets are exactly the subsets that are closed under the formation of directed suprema\u2014in other words, the subdcpos.  This was introduced by K. Keimel and J. Lawson [4].<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Then the d-closure is simply the closure in the d-topology.  Oh yes, sure, that is a tautology&#8230; But the d-topology is a useful notion!  (By the way, the authors of [3] say in a footnote that the d-topology appears to have first been considered by Oswald Wyler in 1981.  Having just reread that paper, I do not think so.)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In order to appreciate how far from the Scott topology the d-topology is, one should realize that the d-topology is <em>always<\/em> Hausdorff.  Indeed, every Scott-open set is open in the d-topology, and also every downwards-closed subset (for rather trivial reasons&#8230;); if <em>x<\/em>\u2270<em>y<\/em>, then we can separate <em>x<\/em> from <em>y<\/em> by taking \u2193<em>x<\/em> as open neighborhood of <em>x<\/em>, and its complement as open neighborhood of <em>y<\/em>.  In general, the d-topology is finer than the <a href=\"https:\/\/projects.lsv.ens-paris-saclay.fr\/topology\/?page_id=1998\">Skula topology<\/a> obtained from the Scott topology, and the Skula topology of a T<sub>0<\/sub> space is already always Hausdorff.<\/p>\n\n\n<ol>\n<li><span class=\"name\"><span class=\"surname\">Jose Meseguer.<\/span><\/span>\u00a0<span class=\"chapter-title\">On order-complete universal algebra and enriched functorial semantics<\/span>. <span class=\"source\">Proceedings of the 1977 International FCT-Conference<\/span>, Poznan-Kornik, <span class=\"publisher-loc\">Poland<\/span>, September 1977, pages\u00a0<span class=\"fpage\">294<\/span>\u2013<span class=\"lpage\">301<\/span>.<\/li>\n<li>Adrian Fiech. \u00a0<a href=\"https:\/\/www.cambridge.org\/core\/journals\/mathematical-structures-in-computer-science\/article\/colimits-in-the-category-dcpo\/9D241E8294D461B377AB96818F250B9C\">Colimits in the category DCPO<\/a>. <a href=\"https:\/\/www.cambridge.org\/core\/journals\/mathematical-structures-in-computer-science\">Mathematical Structures in Computer Science<\/a>, <a href=\"https:\/\/www.cambridge.org\/core\/journals\/mathematical-structures-in-computer-science\/issue\/C4A295BF8BAC4A74859661A3026CFC6A\">6(5)<\/a>, October 1995, pages 455-468.<\/li>\n<li>Achim Jung, M. Andrew Moshier, and Steve Vickers. \u00a0<a href=\"https:\/\/www.sciencedirect.com\/science\/article\/pii\/S1571066108004076\">Presenting dcpos and dcpo algebras<\/a>. \u00a0Proceedings of the 24th Conference on Mathematical Foundations of Programming Semantics (MFPS XXIV), May 2008, Philadelphia, PA, USA. \u00a0Edited by A. Bauer and M. Mislove. \u00a0<a href=\"https:\/\/www.sciencedirect.com\/journal\/electronic-notes-in-theoretical-computer-science\/\">Electronic Notes in Theoretical Computer Science<\/a> <a href=\"https:\/\/www.sciencedirect.com\/journal\/electronic-notes-in-theoretical-computer-science\/vol\/218\/suppl\/C\">218<\/a>, pages 209-229.<\/li>\n<li>Klaus Keimel and\u00a0Jimmie D. Lawson. \u00a0<a href=\"https:\/\/www.sciencedirect.com\/science\/article\/pii\/S0168007208001619\"><em>D-completions and the d-topology<\/em><\/a>. \u00a0Annals of Pure and Applied Logic 159(3), June 2009, pages 292-306.<\/li>\n<li>Dongsheng Zhao and Taihe Fan. \u00a0<a href=\"https:\/\/www.sciencedirect.com\/science\/article\/pii\/S0304397510001155\">Dcpo-completion of posets<\/a>. \u00a0<a href=\"https:\/\/www.sciencedirect.com\/journal\/theoretical-computer-science\/\">Theoretical Computer Science<\/a> <a href=\"https:\/\/www.sciencedirect.com\/journal\/theoretical-computer-science\/vol\/411\/issue\/22\">411(22-24)<\/a>, May 2010, pages 2167-2173.<\/li>\n<\/ol>\n<p style=\"text-align: right;\">\u2014 <a href=\"https:\/\/www.lsv.ens-paris-saclay.fr\/~goubault\/?l=en\" rel=\"attachment wp-att-993\">Jean Goubault-Larrecq<\/a>\u00a0(November 20th, 2019)<img loading=\"lazy\" decoding=\"async\" class=\"wp-image-993 alignright\" src=\"https:\/\/projects.lsv.ens-paris-saclay.fr\/topology\/wp-content\/uploads\/2016\/08\/jgl-2011.png\" alt=\"jgl-2011\" width=\"32\" height=\"44\" \/><\/p>","protected":false},"excerpt":{"rendered":"<p>Let us start with the following problem. Let X be a dcpo, and \u2261 be an equivalence relation on X. What is the quotient dcpo X\/\u2261? One may think that it is built in the usual way, taking the equivalence &hellip; <a href=\"https:\/\/projects.lsv.ens-paris-saclay.fr\/topology\/?page_id=2102\">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-2102","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/projects.lsv.ens-paris-saclay.fr\/topology\/index.php?rest_route=\/wp\/v2\/pages\/2102","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=2102"}],"version-history":[{"count":42,"href":"https:\/\/projects.lsv.ens-paris-saclay.fr\/topology\/index.php?rest_route=\/wp\/v2\/pages\/2102\/revisions"}],"predecessor-version":[{"id":5397,"href":"https:\/\/projects.lsv.ens-paris-saclay.fr\/topology\/index.php?rest_route=\/wp\/v2\/pages\/2102\/revisions\/5397"}],"wp:attachment":[{"href":"https:\/\/projects.lsv.ens-paris-saclay.fr\/topology\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2102"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}