I am sorry… I had a plan of explaining a certain result on models of spaces, but I could not find a reference on that result, I could not find a proof either, and I eventually realized that this result would have unexpected consequences… too bad. I didn’t have time to write any new, elaborate, replacement post, so I switched to plan B.

In other words, I will talk about the beginning of my paper [1] with F. Mynard. I have already talked about the history of that paper, and about the final sections of that paper, in an earlier post. Funnily, I started writing this post on Sunday, April 19th, 2020, and while I was about to post it (on Monday, April 20th), I received an email asking me to review the typographical proofs of this same paper!

## The original question

The question is a bit curious: is there a form of Stone duality for convergence spaces? And what would that mean? As much as a locale is a pointfree (some have said pointless, but I will resist the pun) form of space, generalizing (sober) topological spaces, that would mean finding a notion of convergence that does not involve points… rather paradoxical, if I may say so.

That turns out to work perfectly well. Let us discover how we should do it. We should try to formalize convergence, but working with sets of points and not mentioning points per se; later, we will replace those sets by elements of some abstract lattice *L*.

So let’s see. A convergence space is a set *X* together with a binary relation of convergence → between filters of subsets of *X* (elements of **Filt**(**P**(*X*)), where **P**(*X*) is the lattice of subsets of *X*, and I write ** Filt** for the operator “set of filters on”) and points of

*X*. It should satisfy two axioms:

- If
*F*→*x*and*G*is a filter that contains*F*, then*G*→*x* - the principal ultrafilter at
*x*(the set*ẋ*of all subsets of*X*that contain*x*) converges to*x*, namely*ẋ*→*x*.

I have already talked about filters in several posts, which should all be collected (including this one) here.

Now, imagine that instead of a relation →, we wrote lim for the operator that maps every filter to its set of limits. This means that we would say that a convergence space is a set *X* together with a map lim : **Filt**(**P**(*X*)) → **P**(*X*), satisfying the following two axioms:

- If
*G*is a filter that contains the filter*F*, then lim*G*contains lim*F*; in other words, lim is a*monotonic*map; - and for every
*x*,*x*is in lim*ẋ*.

Ah. The first axiom does not mention points at all, just sets of points, and that is good. But the second one, the *point axiom*, is a problem.

Our solution, with Frédéric, is simply to omit the point axiom. After all, when one goes from topological spaces to frames (and locales), we also forget part of the data given by the topological space: namely, that its frame of opens had to be spatial, and this is lost.

## Convergence coframes

Hence we define a *convergence inf-semilattice* as a pair (*L*, lim) of an inf-semilattice *L*, plus a monotonic map lim : **Filt**(*L*) → *L*. That is, we have replaced **P**(*X*) by an abstract inf-semilattice *L* (and forgotten about the point axiom).

Why should *L* be an inf-semilattice? After all, **P**(*X*) is much more than that: it is a complete, atomic, Boolean lattice; it is an algebraic lattice, and so on. But we only needed the property of being an inf-semilattice to develop the beginning of the theory. We really need *L* to be at least a lattice to obtain a suitable adjunction between the category Conv of convergence spaces and (the opposite) of a corresponding pointfree category.

In the end, we had many choices for the kind of order-theoretic properties that one should impose on *L*, and we formalized them under the name of ‘admissibility’. However, I am pretty much convinced that the right setting consists in requiring *L* to be a coframe.

A *coframe* is the opposite *L*=Ω^{op} of a frame Ω, namely, it is a complete lattice in which binary suprema distribute over arbitrary infima. A typical example is the lattice of closed subsets of a topological space (that would be a *spatial* coframe, by definition.)

Hence here is the notion we will work with: a *convergence coframe* is a pair (*L*, lim), where *L* is a coframe, and lim is a monotonic map from **Filt**(*L*) to *L*.

If you feel uncomfortable with coframes, and you prefer frames, you can turn everything around. Let *L*=Ω^{op} where Ω is a frame, then filters on *L* are ideals on Ω (even better if you understand ideals better than filters), and lim is now a map from the ideal completion **I**(Ω) to Ω… but an *antitonic* one. As they say, you cannot have your cake and eat it, too (but see the comment on logic at the very end of this post).

## The category of convergence coframes

We wish to build a category of convergence coframes **CF**^{conv}. Its objects are, naturally, the convergence coframes. What should its morphisms be?

We should of course imitate the notion of morphism in Conv, namely the notion of continuous map *f* from a convergence space *X* to a convergence space *Y*. Such a map is continuous if and only if, for every filter *F* of subsets of *X*, for every point *x* to which *F* converges, the image filter *f*[*F*] (defined as the set of subsets *B* of *X* such that *f*^{-1}(*B*) is in *F*) converges to *f*(*x*).

Let us rephrase that in a pointfree way. The function *f* is continuous:

- if and only if for every
*F*∈**Filt**(**P**(*X*)), for every*x*∈ lim*F*,*f*(*x*) is in lim*f*[*F*], - if and only if for every
*F*∈**Filt**(**P**(*X*)), lim*F*⊆*f*^{-1}(lim*f*[*F*]).

Note that the latter formulation no longer mentions points. It does not even mention *f* itself either, except through the inverse map *f*^{-1}.

Let us write *φ* for that inverse map *f*^{-1}. This is a coframe map: it preserves arbitrary infima and finite suprema (even arbitrary suprema, but that will vanish when we generalize from **P**(*X*) to an arbitrary coframe *L*). And *f*[*F*] is the set of subsets *B* of *X* such that *φ*(*B*) is in *F*; namely, *f*[*F*] = *φ*^{-1}(*F*). Hence *f* is continuous if and only if for every *F* ∈ **Filt**(**P**(*X*)), lim *F* ⊆ * φ*(lim

*φ*

^{-1}(

*)). This is the formula we are looking for.*

*F***Definition.** A coframe map *φ* from a coframe *L* to a coframe *L’* is *continuous* if and only if, for every *F* ∈ **Filt**(*L*‘), lim *F* ≤ * φ*(lim

*φ*

^{-1}(

*)).*

*F***CF**

^{conv}is the category of convergence coframes and coframe maps.

In the meantime, we have de facto defined a functor “powerset” **P** from **Conv** to the opposite category (**CF**^{conv})^{op}: it maps every convergence space (*X*, →) to the convergence coframe (**P**(*X*), lim) (where lim *F* is defined as the set of limits of *F*), and every continuous map *f* : *X* → *Y* to the continuous coframe map *f*^{-1} : **P**(*Y*) → **P**(*X*).

This is analogous to the functor **O** mapping each topological space to its frame of open subsets in ordinary Stone duality.

## The space of points of a convergence coframe

Since we are aiming for a Stone-type duality, we should find a right adjoint to the functor **P**, much as, in ordinary Stone duality, **O** has a right adjoint.

In other words, given a convergence coframe *L*, we should find a convergence space *X* such that **P**(*X*) approximates *L* as closely as possible.

As in ordinary Stone duality, we should find what a *point* should be in a convergence coframe. Oh, there is a principled way of doing so, called Isbell duality [2], see also the nCatLab page on the subject. As in [1], I will rather opt for a concrete approach. I am not sure that what we get is an instance of Isbell duality, as studied in [2], but it ought to be; anyway, a direct approach seems simpler.

Let 1 be the one-element convergence space. 1 has just one element, which I will name *, and there are only two filters of subsets, {{*}} and {∅, {*}}. The point axiom dictates that the first one converges to *, and monotonicity implies that the second one also convergences to *. Now, if you look at the continuous maps from 1 to any given convergence space *X*, you will realize that you obtain exactly all the maps * ↦ *x*, with *x* in *X*; they are all continuous. Hence you can equate those continuous maps with the points *x* of *X*. Naturally, if you are into category theory, you would not be surprised: 1 is the terminal object in **Conv**, and a (global) point of an object *X* in a category is just a morphism from 1 to *X*.

We dualize this. It turns out that **P**(1) is the terminal object in (**CF**^{conv})^{op} (namely, the initial object in **CF**^{conv}), so a point of a convergence coframe *L* should be a morphism from **P**(1) to *L* in (**CF**^{conv})^{op}, that is, a morphism from *L* to **P**(1) in **CF**^{conv}. What is that, concretely?

First, lim is defined on **P**(1) as the constant function, mapping every filter to 1 itself. A morphism *φ* from *L* to **P**(1) in **CF**^{conv} is a coframe map from *L* to **P**(1) which is continuous; recall that this means that for every *G* in **Filt**(**P**(1)), lim *G* ≤ * φ*(lim

*φ*

^{-1}(

*)); in other words, 1 ⊆*

*G**(lim*

*φ**φ*

^{-1}(

*)); and there is just one filter*

*G**G*to check, namely {{*}} (i.e., {1}), since the property will follow automatically for the other one, by monotonicity:

*φ*is continuous if and only if 1 =

*φ*(lim

*φ*

^{-1}({1})).

A coframe map *φ* from *L* to **P**(1) is entirely determined by the set *φ*^{-1}({1}). Since *φ* preserves arbitrary infima, *φ*^{-1}({1}) has a least element *p*, and *φ*^{-1}({1})=↑*p*. Additionally, since *φ* preserves finite suprema, *p* is a so-called *join-prime* element of *L*: an element different from the bottom element ⊥, and such that for all elements *u*, *v* of *L* such that *p*≤*u*∨*v*, we have *p*≤*u* or *p*≤*v*. (Those are the prime elements of the frame *L*^{op}, namely the points of *L*^{op}, in ordinary Stone duality.) Conversely, for every join-prime element *p* of *L*, the map *φ* that sends every element above *p* to 1 and all other elements to the empty set is a coframe map.

Now the condition 1 = *φ*(lim *φ*^{-1}({1})) is equivalent to lim *φ*^{-1}({1}) ∈ *φ*^{-1}({1}), namely to *p* ≤ lim ↑*p*, reusing the notation of the last paragraph.

Hence the points of *L* are defined, equivalently, as the join-prime elements *p* of *L* such that *p* ≤ lim ↑*p*.

It is instructive to see what this means on convergence coframes of the form **P**(*X*). A join-prime element of **P**(*X*) is just a one-element set *p* = {*x*}. Then the filter ↑*p* is exactly the principal ultrafilter *ẋ*, and the condition *p* ≤ lim ↑*p* then means that *x* is in lim *ẋ*: this is just the point axiom!

That is, although we have removed the point axiom from the axiomatization of convergence coframes, we retrieve it in a principled way from a general, category theoretic, notion of point in (**CF**^{conv})^{op}.

This is a puzzling remark, in my opinion. We have defined the points of a convergence coframe *L* (at least initially) from a purely categorical principle: as the morphisms from the terminal object to *L* in (**CF**^{conv})^{op}. It turns out that this terminal object is **P**(1), that 1 has a structure of convergence space, and eventually that forces a (pointfree) version of the point axiom: *p* ≤ lim ↑*p*.

## The space **pt**(*L*)

Given a convergence coframe (*L*, lim), we build a convergence space **pt**(*L*), whose elements are the points of *L*. (From now on, I will always use the definition of a point *p* as being a join-prime element of *L* such that *p* ≤ lim ↑*p*. Oh, the notation **pt** conflits with the notation **pt** I use in the book, in the setting of ordinary Stone duality; I hope you will pardon me.) It remains to define a convergence relation on **pt**(*L*).

Such a would-be convergence relation is a relation between elements of **Filt**(**P**(**pt**(*L*))) and elements of **pt**(*L*). But **Filt**(**P**(**pt**(*L*))) is rather daunting: its elements are filters (certain sets), of sets, of points (certain filters) of *L*; those are sets of sets of sets of things—third-order objects, which are certainly a bit hard to grasp!

All right. What we will do is to reduce this third-order object to a more understandable first-order object: namely, given any *ℱ* ∈ **Filt**(**P**(**pt**(*L*))), we will convert it to a filter *ℱ*^{o} ∈ **Filt**(*L*), apply the lim operator to it, getting an element *u*=lim *ℱ*^{o} of *L*. Then we will convert *u* to a set *u*^{•} of points of *L*, namely, to an element of **P**(**pt**(*L*)). That will be the desired set of limits of the original filter *ℱ*.

We start with the definition of *u*^{•}. It is natural to decide that a point *p* of **pt**(*L*) should be in *u*^{•} if and only if *p*≤*u*. Remember that, if *L* were of the form **P**(*X*), then *p* would be a one-element set {*x*}, ≤ would be inclusion, so *p* would be in *u*^{•} if and only if *x* is in (the set) *u*, hence *u*^{•} would be the set *u* itself.

The operation *u* ↦ *u*^{•} is a very nice one. Notably, it is a coframe map, in particular a monotonic map. For example, it preserves arbitrary infima: imagine that *u* is the inf of a family (*u _{i}*)

_{i ∈ I}. Then

*p*in in

*u*

^{•}if and only if

*p*≤

*u*, if and only if

*p*≤

*u*for every

_{i}*i*∈

*I*, if and only if

*p*is in the intersection of the sets

*u*

_{i}^{•},

*i*∈

*I*. Note that, if you take the empty family (

*I*empty, that is), then its infimum is the top element ⊤ of

*L*, so ⊤

^{•}is the top element of

**P**(

**pt**(

*L*)), namely

**pt**(

*L*) itself. It also preserves finite suprema: for every point

*p*,

*p*is in (

*u*

_{1}⋁ … ⋁

*u*)

_{n}^{•}if and only if

*p*≤

*u*

_{1}⋁ … ⋁

*u*, if and only if

_{n}*p*≤

*u*for some

_{i}*i*(because

*p*is join-prime), if and only if

*p*is in the union of the sets

*u*

_{i}^{•}, 1≤

*i*≤

*n*.

Now we can define *ℱ*^{o}. We define it as {*u* ∈ *L* | *u*^{•} ∈ *ℱ*}. That *is* a filter:

- it contains the top element ⊤, since ⊤
^{•}is the top element of**P**(**pt**(*L*)), which must be in*ℱ*, since*ℱ*is a filter; - it is upwards-closed: if
*u*is in*ℱ*^{o}and if*u*≤*v*, then*u*^{•}⊆*v*^{•}(by monotonicity), so*v*^{•}is in*ℱ*, which is upwards-closed, and therefore*v*is in*ℱ*; - if
*u*and*v*are two elements of*ℱ*^{o}, then (*u*⋀*v*)^{•}=*u*^{•}∩*v*^{•}is in*ℱ*(because*ℱ*is a filter), so*u*⋀*v*is in*ℱ*^{o}.

In fact, *ℱ*^{o} is even a proper filter, if *ℱ* is already proper, for similar reasons: it cannot contain ⊥. And if *ℱ* is a prime filter, then so is *ℱ*^{o}; and if *ℱ* is closed under infinite infima (resp. of a given cardinality), then so is *ℱ*^{o}.

The operation *ℱ* ↦ *ℱ*^{o} is well-known, and is the multiplication of the so-called filter monad on **Set**. (It also specializes to the multiplication of the ultrafilter monad on **Set**.)

That is it: we define the set of limits of *ℱ* ∈ **Filt**(**P**(**pt**(*L*))) as (lim *ℱ*^{o})^{•}. If you prefer, *ℱ* converges to *p* if and only if *p*≤lim *ℱ*^{o}; but I am not sure it helps. In any case, the operation *ℱ* ↦ *ℱ*^{o} is monotonic, so the operation *ℱ* ↦ (lim *ℱ*^{o})^{•} is monotonic, too: we have defined a structure of convergence space on **pt**(*L*).

## The point functor

This defines the object part of a functor **pt** from (**CF**^{conv})^{op} to **Conv**. On morphisms, we simply observe that for every morphism *φ* : *L* → *L’* in (**CF**^{conv})^{op}, namely for every continuous coframe map *φ* from *L’* to *L*, then the inverse image map *φ*^{-1} maps points of *L* to points of *L’*, and is continuous with respect to the notions of convergence on **pt**(*L*) and **pt**(*L*‘). This a formal game, and I’ll leave it to you as an exercise.

Hence we have two functors **P** and **pt** going in opposite directions. They form an adjunction **P** ⊣ **pt**, just like the usual Stone adjunction between topological spaces and locales. The counit at any object *L* of (**CF**^{conv})^{op} is a morphism from **P**(**pt**(*L*)) to *L* in (**CF**^{conv})^{op}, namely a continuous coframe map from *L* to **P**(**pt**(*L*)), and you should not be surprised to learn that this is just the map *u* ↦ *u*^{•}.

The unit at any convergence space *X* is a continuous map from *X* to **pt**(**P**(*X*)), and it is even simpler: this maps every *x* in *X* to {*x*}. Again, I will leave it to you to check that this is continuous, and that all those things we have talked about form an adjunction.

Hence we have obtained our form of Stone duality for convergence spaces.

## What should be “sober” convergence spaces?

Let us have a look back at Stone duality. Basically, this is an adjunction **O** ⊣ **pt** (for another functor, also written as **pt**, in the book) between topological spaces and locales. A *sober* topological space can be then defined in any of the following two, equivalent ways: it is a space (isomorphic to one) of the form **pt**(Ω) for some frame Ω; or it is a space *X* for which the unit (from *X* to **pt**(**O**(*X*))) is an isomorphism. Those two definitions are equivalent because the sobrification monad **pt** o **O** is idempotent (if you look into the problem long enough, that is).

Hence, what should be a notion of sobriety for convergence spaces? We have two choices, imitated from the two definitions above. A priori, there is no reason to believe they should coincide. They do! It is even better (or worse, depending on your mood): *all* convergence spaces are sober, with respect to any of the two possible definitions.

The reason is that the “sobrification” monad **pt** o **P** is not only idempotent, but its unit is *always* an isomorphism. In other words:

**Proposition.** The unit of the adjunction **P** ⊣ **pt** is a (natural) isomorphism of convergence spaces.

Adjunctions with that property are called *coreflective *adjunctions, or simply *coflections*.

*Proof.* The unit maps every point *x* of a convergence space *X* to the element {*x*} of **pt**(**P**(*X*)). In particular, it is injective. We have observed that the only join-prime elements of **P**(*X*) are the one-element sets {*x*}, and they are all points, hence elements of **pt**(**P**(*X*)). Therefore the unit is bijective.

It remains to show that the inverse map *d* : {*x*} ↦ *x* is continuous. For that, we consider any filter *ℱ* of subsets of **pt**(**P**(*X*)) (yes, that lives in **Filt**(**P**(**pt**(**P**(*X*)))), and is a *fourth* order notion), and we assume that it converges to some element {*x*} of **pt**(**P**(*X*)). We wish to show that *d*[*ℱ*] converges to *x*.

For that, we first compute *d*[*ℱ*]. This is the set of subsets *u* of *X* such that *d*^{-1}(*u*) is in *ℱ*. But *d*^{-1}(*u*)=*u*^{•}: an element *p*={*y*} of **pt**(**P**(*X*)) is in *d*^{-1}(*u*) if and only if *y* is in *u*, and it is in *u*^{•} if and only if *p*≤*u*, and since ≤ is just inclusion, that is also equivalent to *y* ∈ *u*. It follows that *d*[*ℱ*] is exactly what we wrote as *ℱ*^{o} earlier.

Now we use our assumption that *ℱ* to converge to {*x*} in **pt**(**P**(*X*)). By definition of the convergence structure on the latter, this means that {*x*} is below (lim *ℱ*^{o})^{•}, hence that *x* is in lim *ℱ*^{o}. The lim operator here is the lim operator on the convergence coframe **P**(*X*), which is just the set of limits of *ℱ*^{o}. But *ℱ*^{o}=*d*[*ℱ*], as we have seen above, so *d*[*ℱ*] converges to *x*, as desired. ☐

So every convergence space is “sober”.

That the adjunction **P** ⊣ **pt** is coreflective implies that, if we equate convergence spaces *X* with the object **P**(*X*) of (**CF**^{conv})^{op}, then (**CF**^{conv})^{op} appears as a larger category than **Conv**, in which **Conv** sits as a full subcategory.

Let me mention that this is just one view on what sobriety might mean on convergence spaces (here: a vacuous notion). Reinhold Heckmann gave another, certainly more interesting and more sophisticated analysis on what sobriety might mean on convergence spaces in a 2015 talk at Schloss Dagstuhl [3].

## Conclusion

I have talked enough for this month. The paper [1] shows how this adjunction specializes to adjunctions involving limit spaces, pretopological spaces, and finally topological spaces. Intimidating as what I am about to say might seem, what I have talked about today is just the leftmost vertical adjunction in the following diagram, which summarizes all the adjunctions considered in the paper (and this is a *commuting* diagram of adjunctions):

One of the things we would have liked to have would be to retrieve ordinary Stone duality as the rightmost adjunction, but this is not what we obtained. (This is also one reason why it took us several years before we obtained a coherent picture.) Instead, we found another form of Stone duality for topological spaces, which I have already described in a previous post.

Many questions remain:

- Pseudotopological spaces do not fit nicely in this picture. Frédéric and I have thought a lot about them, but that is awkward. Typically, the definition of pseudotopological space relies on ultrafilters (on
**P**(*X*)), but what is the correct generalization of ultrafilters if you replace**P**(*X*) by an arbitrary coframe*L*? You have at least two choices: maximal non-trivial filters, and prime filters. Those two are no longer equivalent notions, unless*L*is a (complete) Boolean algebra. You can see plenty of places where similar problems lurk around in the paper: notably, all the places where complemented elements of*L*come into play. - Replacing
**P**(*X*) by arbitrary coframes*L*opens up an avenue for looking at more general spaces than convergence spaces. For example, one may imagine that*L*is the coframe of closed subsets of a space*X*, which would then have both a topology (in the form of a coframe of closed subsets) and a notion of convergence. Those two notions are not required to be tightly correlated, except that convergence should be defined as a relation between filters of*closed subsets*and points. There is an obvious similarity with bitopological spaces here but this may be a red herring, because of the remark of the previous sentence. There is perhaps a more vivid similarity with Wallman compactifications, if only because (at least for normal spaces) they are built, precisely, from filters of closed subsets. - Finally, a quick word about logic. I will not say why or how, but ordinary Stone duality (at least, as presented in the book) is also at the heart of a completeness theorem for certain deductive systems for propositional intuitionistic logic. Here we have a duality, hence a completeness theorem as well, at least potentially… but for what kind of logic? Here is a hint of what it should be. Instead of considering monotonic operators lim :
**Filt**(*L*) →*L*, it is probably better to take the alternate view where we replace the coframe*L*by the frame Ω=*L*^{op}, and lim by a dual, antitonic operator ~ :**I**(Ω) → Ω. (This was mentioned near the beginning of this post.) This is because the places where propositions are true should form open sets, not closed sets, in ordinary interpretations of logic. Being antitonic, ~ must then be a kind of negation. The role of the ideal completion**I**(Ω) is less clear; a filter in**Filt**(*L*) is like a theory, and a proper filter is like a consistent theory. I wonder whether the associated logic could be some form of explanation of negation by failure, as implemented in Prolog, or of some liberal form of probability logic.

Voilà: see you next time, and take care of yourselves!

- Jean Goubault-Larrecq and Frédéric Mynard. Convergence without points. Houston Journal of Mathematics, 46(1):227-282, 2020. arXiv 1807.03226, July 2018.
- Michael Barr, John F. Kennison, R. Raphael,
*Isbell Duality*. Theory and Applications of Categories, Vol. 20, No. 15, 2008, pp. 504–542. - Reinhold Heckmann. Notions of sobriety for convergence spaces. Talk given at the Dagstuhl Seminar 15441 “Duality in Computer Science”, October 25–30 , 2015. Schloss Dagstuhl, Wadern, Germany. Organized by Mai Gehrke, Achim Jung, Victor Selivanov, and Dieter Spreen.