A few weeks ago, I went to the Semantics of Proofs and Programs workshop at the Institut Henri Poincaré in Paris. There were many fascinating talks there, and the workshop was very enjoyable.

At some point, Giuseppe Rosolini mentioned Dana Scott‘s equilogical spaces. I had loved this construction since I’ve learned about it, so let me talk about it. Apparently, Dana Scott had mentioned the idea already in 1976 [1, Section 7], and it did not catch on. It was resurrected in work by Andrej Bauer, Lars Birkedal and Dana Scott [2] more than 20 years later.

**Equilogical spaces.**

The categorical of equilogical spaces is a very natural category, and it is Cartesian closed (and a bit more). Here is the definition:

- An equilogical space is a pair (
*X*, ≡) where*X*is a T_{0}space and ≡ is an equivalence relation on*X*.

I will almost always write ≡ for the ambient equivalence relation, irrespective of the space we are in.

You may think of (*X*, ≡) as saying we really wish to contemplate the quotient*X*/≡, but we do not really carry out any quotienting. Similarly to formal balls, we might call these objects*formal quotients*.

- It is tempting to define a morphism of equilogical spaces
*f*: (*X*, ≡) → (*Y*, ≡) as a continuous map*f*from*X*to*Y*. It is only sensible to require*f*to be*equivariant*, namely to be such that if*x*≡*x’*then*f*(*x*)≡*f*(*x’*).

However, in the formal quotient interpretation, you would not like to distinguish between two equivariant continuous maps*f*,*f’*:*X*→*Y*that map every element to distinct but equivalent elements.

In other words, say that two maps*f*,*f’*:*X*→*Y*are*equivalent*if and only if, for every*x*in*X*,*f*(*x*)≡*f’*(*x*).

We then define the morphisms of equilogical spaces from (*X*, ≡) to (*Y*, ≡) as those*equivalence classes*of equivariant continuous maps from*X*to*Y*. I will usually do as if morphisms were equivariant continuous maps, but I’ll have to remind you that these morphisms are understood modulo equivalence, from time to time.

That is it! Let us write **Equ** for the resulting category, of equilogical spaces and equivalence classes of equivariant continuous maps. At first sight, **Equ** is very close to **Top**_{0}, the category of T_{0} topological spaces, and I would not have been surprised to learn that they are equivalent… but they are not, since one is Cartesian-closed and the other is not.

**Equ** is a larger category than **Top**_{0}, in the following sense. **Top**_{0} embeds into **Equ** through the functor Inj that maps every topological space *X* to (*X*, =), and every continuous map *f* : *X* → *Y* to the (one-element) equivalence class of *f*.

Conversely, there is a functor Q : **Equ** → **Top**_{0} that maps every formal quotient (*X*, ≡) to the actual quotient space *X*/≡. The composition Q o Inj is the identity, and there is natural transformation from the identity functor on **Equ** to Inj o Q (at object (*X*, ≡), it maps *x* in *X* to its equivalence class modulo ≡). Putting all this together, Inj is right adjoint to Q, so, equating **Top**_{0} with its image in **Eq****u**, we see that **Top**_{0} is a reflective subcategory of **Eq****u** (see p.183).

**Limits, colimits.**

**Equ** has all products. The product ∏_{i}_{ in }* _{I}* (

*X*, ≡

_{i}*) is the obvious one, (∏*

_{i}

_{i}_{ in }

_{I}*X*, ≡), where ≡ is the equivalence relation defined by: (

_{i}*x*)

_{i}

_{i}_{ in }

*≡ (*

_{I}*x’*)

_{i}

_{i}_{ in }

*if and only if*

_{I}*x*≡

_{i}

_{i}*x’*for every

_{i}*i*in

*I*.

**Equ** has all equalizers, too. The equalizer of *f*, *g* : (*X*, ≡) → (*Y*, ≡) is the subspace [*f*≡*g*] of *X* of those points *x* such that *f*(*x*)≡*g*(*x*), with equivalence relation the restriction of that of (*X*, ≡) to the subset [*f*=*g*]. In general, the equalizers in **Equ** are the ≡-satured subspaces, with the obvious definition of subspace (a topological subspace with the restriction of the equivalence relation); ≡-saturated means that any element that is ≡-equivalent to one of the subspace is also in the subspace.

Since **Equ** has all products and all equalizers, it is complete.

**Equ** also has all coproducts, and they are also the obvious ones. The coproduct ∐_{i}_{ in }* _{I}* (

*X*, ≡

_{i}*) is the obvious one, (∐*

_{i}

_{i}_{ in }

_{I}*X*, ≡), where ≡ is the equivalence relation defined by: (

_{i}*i*,

*x*) ≡ (

*i’*,

*x’*) if and only if i=

*i’*and

*x*≡

_{i}*x’.*

The main difference with **Top** is with coequalizers. In **Top**, the coequalizers are the quotient maps. The coequalizers are rather different in **Equ**. We build them now. As a consequence, **Equ** will be cocomplete.

**Coequalizers**.

A coequalizer of *f*, *g* : (*X*, ≡) → (*Y*, ≡) in **Equ** is by definition an (equivalence class) of equivariant continuous maps *h* : (*Y*, ≡) → *Z* for some equilogical space *Z*, such that *h* o *f* = *h* o *g* (up to equivalence), and which is universal with this property.

A good candidate for *h* and *Z* is as follows. Let *R* be the symmetric relation on *Y* defined by *y R y’* if and only if *y*=*f*(*x*) and *y’*=*g*(*x*) for some *x* in *X.* If *h* exists, then *h*(*y*)≡*h*(*y’*) for every pair *y*, y’ in *Y* with *y R y’*. It follows that the same relation holds for every pair *y*, y’ in Y such that *y *(≡ ∪ *R*)* *y’*. The relation (≡ ∪ *R*)* is the reflexive transitive closure of the union of the two relations. In other words, *x *(≡ ∪ *R*)* *x’* if and only if there are 2*n*+1 points, for some natural number *n*, *x _{0}*,

*x*, …,

_{1}*x*, such that

_{2n+1}*x*≡

*x*

_{0}*R*

*x*≡ …

_{1}*R*

*x*≡

_{2n-1}*x*

_{2n}*R*

*x*

_{2n+1}*≡ x’*.

The equilogical space *Z* = (*Y*, (≡ ∪ *R*)*) is, together with (the equivalence class of) the identity map from *Y* to *Z*, the coequalizer of *f* and *g* in **Equ**. The previous paragraph is the beginning of the argument that proves it.

In **Top**, the coequalizers are the quotient maps. We do not take any topological quotients here! After all, this is why we took *formal* quotients instead of actual quotients as objects of **Equ**.

**Coequalizers… and Cartesian closure.**

In any category, any morphism that occurs as a coequalizer is necessarily epi, but the converse may fail. It is customary to call *regular epi* the maps that occur as coequalizers of some parallel pair of morphisms. In **Top**, the regular epis are exactly the quotient maps, while every surjective continuous map is epi.

This leads us to Cartesian closure. It is category theoretic folklore that, in a Cartesian closed category, regular epis are closed under products with isos. That is, if *q* : *A* → *B* is a regular epi, then *q* x id* _{C}* :

*A*x

*C*→

*B*x

*C*is also a regular epi. Indeed, _ x

*C*is a left adjoint functor since

*C*is exponential by Cartesian closure, left adjoints preserve colimits [see p.176], and coequalizers are special colimits.

This is the deep reason behind Exercise 5.4.29. Oops, I just gave you a proof of it! And a much shorter one, too… Doing Exercise 5.4.29 is still interesting, and will help to get a better grasp of what is happening with topological spaces.

In **Equ**, just like in **Top**, product with any object *C* also preserves coproducts. From the construction of coequalizers in **Equ**, we see that product with *C* in Equ preserves coequalizers, too. (This fails in **Top**.) It follows that product with *C* preserves all colimits.

This is a necessary condition for the _ x *C* functor to be left adjoint, hence for *C* to be exponentiable. There is a handy theorem of category theory, Freyd’s General Adjoint Functor Theorem, which states that the functors *F* from a cocomplete category ** C** to a category

**that are left adjoints are exactly those which preserve all colimits and satisfy a so-called**

*D**solution set condition*. The latter is a bit subtle, and I don’t want to bother you with it. Be aware that if you follow the link above, you’ll have to reverse the direction of all arrows.

Anyway, all this means that we are just one step away from proving that

**Equ**is Cartesian closed. Since the solution set condition is tricky, and eventually the General Adjoint Functor Theorem would give little information as to what exponentials look like, we follow the route that Bauer, Birkedal and Scott took. (By the way, Exercise 5.4.29 essentially asks you to prove Freyd’s theorem in the special case of the _ x

*C*functor on

**Top**.)

**Algebraic complete lattices with PERs.**

The argument by Bauer *et al. *that **Equ** is Cartesian closed goes through a brilliant construction: we build an equivalent category, which will easily be seen to be Cartesian closed. This is how Dana Scott came up with equilogical spaces in the first place, from what I understand. See Bauer *et al.* [2] for all missing details.

The starting point of this construction is given in Proposition 9.3.5 of the book. Let **S** be Sierpiński space, **O***X* be the complete lattice of open subsets of *X*. If *X* is T_{0}, then the map η** _{S}** :

*X*→

**S**

^{OX}, defined by η

**(x) = (χ**

_{S}*(x))*

_{U}

_{U}_{ in }

_{OX}for every

*x*in

*X*, is an embedding. I called

**S**

^{OX}the powerset construction, because it is isomorphic to the powerset

**P**(

**O**

*X*) of

**O**

*X*, with the Scott topology of the inclusion ordering. I will prefer the latter view of the powerset construction: then, η

**:**

_{S}*X*→

**P**(

**O**

*X*) maps

*x*to the collection of open neighborhoods of

*x*.

Now, **P**(**O***X*) has all sorts of nice properties. Notably, it is an algebraic complete lattice. The finite elements are just the finite sets of open subsets of *X*.

If we start from an equilogical space (*X*, ≡) instead of just a T_{0} space *X*, this endows **P**(**O***X*) with an additional structure: an equivalence relation on a subset of **P**(**O***X*). Indeed, we can equate *X* with a subspace of **P**(**O***X*), and the equivalence relation ≡ defines an equivalence relation on the corresponding subset.

An equivalence relation on a subset of a set *X* is called a *partial equivalence relation* (*PER*) on *X*. I will usually write such relations as ≃ instead of ≡.

PERs are usually defined in another way. This alternative definition is very simple and natural: a PER ≃ on *X* is a symmetric transitive relation on *X*, which we do not require to be reflexive. Any equivalence relation ≡ on a subset *A* of *X* yields a PER ≃ (according to the new definition), defined by *x* ≃ *y* if and only if *x* and *y* are both in *A* and x ≡ *y*. Conversely, a PER ≃ on *X* defines an equivalence relation on its *domain*, where the domain of ≃ is by definition the set of points such that *x* ≃ *x*. PERs are a classical tool in logic.

Given an equilogical space (*X*, ≡), (**P**(**O***X*), ≃) is an algebraic complete lattice with a PER on it, provided we define ≃ by: the domain of ≃ is Im η** _{S}**, and η

**(**

_{S}*x*) ≃ η

**(**

_{S}*x’*) if and only if

*x ≡*

*x’*. In other words, identifying

*X*with a subspace of

**P**(

**O**

*X*), ≃ is just the equivalence relation ≡ on the subset

*X*.

Call **PERCLat** the category of algebraic complete lattices *L* with a PER ≃ on it. (Bauer *et al.* call it **PEqu**, which I find a little confusing.)

The morphisms are a bit subtle — again. Given two algebraic complete lattices with PERs (*L*, ≃) and (*L*‘, ≃’), the dcpo [*L* → *L’*] of all continuous maps from *L* to *L’* is again an algebraic complete lattice. (This can be seen by using Exercise 5.7.18, which says that [*L* → *L’*] is a Scott domain, and one sees easily that also has a top element, hence that it is an algebraic complete lattice.)

One may define a PER ≅ on [*L* → *L’*] by *f* ≅ *f’* if and only if, for every pair of elements *x*, *x’* in *L* such that *x* ≃ *x*‘, we have *f*(*x*) ≃’ *f’*(*x’*). The domain of this PER is, by definition, the set of *equivariant* maps from *L* to *L’*; a continuous map *f* from *L* to *L’* is equivariant if and only if *f*(*x*) ≃’ *f*(*x’*) whenever *x* ≃ *x*‘. Now, the morphisms from *L* to *L’* are the equivalence classes of equivariant maps, modulo ≅.

Of course, we have just lifted the whole notion of morphisms in **Equ** to **PERCLat** through η** _{S}**. One can show that the two categories

**Equ**and

**PERCLat**are equivalent. (I will relegate the argument in an appendix), and that the latter is Cartesian closed.

The latter is a simple extension of the fact that the category of algebraic complete lattices is Cartesian closed: the exponential object from (

*L*, ≃) to (

*L*‘, ≃’) in

**PERCLat**is ([

*L*→

*L’*], ≅), where ≅ was just defined.

It follows that **Equ** is Cartesian closed, too.

So what does the exponential object from (*X*, ≡) to (*Y*, ≡’) look like in **Equ**? We find the equivalent objects in **PERCLat**, and these are (**P**(**O***X*), ≃) and (**P**(**O***Y*), ≃’) , where ≃ is defined from ≡ and ≃’ is defined from ≡’ in the usual way. The exponential object from (**P**(**O***X*), ≃) to (**P**(**O***Y*), ≃’) in **PERCLat** is ([**P**(**O***X*) → **P**(**O***Y*)], ≅), where ≅ is defined as above: *f* ≅ *f’* if and only if, for every pair of elements *A*, *A’* in **P**(**O***X*) such that *A* ≃ *A*‘, we have *f*(*A*) ≃’ *f’*(*A’*). Going back to **Equ**, the exponential object (*Y*, ≡’)^{(X, ≡)} is then (dom ≅, ≅), where dom ≅ is equipped with the subspace topology induced from the Scott topology on [**P**(**O***X*) → **P**(**O***Y*)]. There does not seem to be any simpler description of it, as far as I know. Might this be related to the Isbell topology, for example? I do not know, and I have been too lazy to check it out.

Application App : (*Y*, ≡’)^{(X, ≡)} x (*X*, ≡) → (*Y*, ≡’) is (the equivalence class of) the map that sends an ≅-equivariant continuous map *f* in [**P**(**O***X*) → **P**(**O***Y*)] and *x* in *X* to *f*(η** _{S}**(

*x*)) — or rather, to the unique point

*y*in

*Y*such that η

**(**

_{S}*)*

*y**= f*(η

**(**

_{S}*x*)).

The currification Λ(*f*) of *f* : (*Z*, ∼) x (*X*, ≡) → (*Y*, ≡’) is (the equivalence class of) the map that sends *z* in *Z* to (the equivalence class of) **P**(**O** (*f* (*z*, _))). The latter rather barbaric notation (see appendix) stands for the equivariant continuous map from **P**(**O***X*) to **P**(**O***Y*) that sends each set *A* of open subsets of *X* to the family of open subsets *V* of *Y* such that {*x* in *X* | * f *(

*) in*

*z*, x*V*} is in

*A*. Gasp. At least it all works out.

**Filter spaces.**

We now have two rather different families of Cartesian closed categories that contain **Top**_{0}: **Equ**, which was the topic of this post… and filter spaces, which were the topic of Filters II. Is there any connection between the two kinds?

This question was solved by Reinhold Heckmann [3]. I’ll talk about this in a later post. There you’ll notice that Heckmann introduces a new, even fancier category of so-called assemblies over algebraic complete lattices. Those generalize our complete algebraic lattices with PERs in such a way that the new category contains not just the T_{0} spaces, but all of **Top**.

[1] Dana S. Scott. *Data types as lattices*. Technical Monograph PRG-5, Oxford University Computing Laboratory, 1976.

[2] Andrej Bauer, Lars Birkedal, and Dana S. Scott. *Equilogical Spaces*. Theoretical Computer Science 315(1), 5 May 2004, 35-59. (Submitted as early as 1998, as far as I know.)

[3] Reinhold Heckmann. *On the Relationship between Filter Spaces and Equilogical Spaces*. 1998. Available on the Web.

**Appendix: Equ and PERCLat are equivalent categories.**

There is a functor *F* : **Equ** → **PERCLat**, which maps the equilogical space (*X*, ≡) to the algebraic complete lattice with PER (**P**(**O***X*), ≃), where ≃ is the PER which we have already mentioned: the domain of ≃ is Im η** _{S}**, and η

**(**

_{S}*x*) ≃ η

**(**

_{S}*x’*) if and only if

*x ≡*

*x’*. Given a morphism of equilogical spaces

*f*: (

*X*, ≡) → (

*Y*, ≡), there is a Scott continuous map

**P**(

**O**

*f*) :

**P**(

**O**

*X*)

**→ P**(

**O**

*Y*), defined as mapping a set A of open subsets of

*X*to

*f*[

*A*] = {

*U*open |

*f*

^{-1}(

*U*) is in

*A*}. (Yes, this is the same formula as for the image filter. This is certainly no accident.) This map is equivariant, just because

*f*respects the equivalence relation ≡. The functor

*F*maps

*f*: (

*X*, ≡) → (

*Y*, ≡) to the equivalence class of

**P**(

**O**

*f*).

Conversely, there is a functor *G* : **PERCLat** → **Equ**, which maps any algebraic complete lattice with a PER (*L*, ≃) to the equilogical space (dom ≃, ≃). Here dom ≃ is the domain of ≃, seen as a subspace of *L*, where *L* has the Scott topology; and in (dom ≃, ≃), the second component ≃ is shorthand for the restriction of ≃ to dom ≃ (an equivalence relation). Given any equivariant map *f* : (*L*, ≃) → (*L*‘, ≃’), *f* restricts to a continuous map from (dom ≃, ≃) to (dom ≃’, ≃’), as a consequence of equivariance. Moreover, any two equivalent equivariant maps *f*, *f’* : (*L*, ≃) → (*L*‘, ≃’) define the same restriction to (dom ≃, ≃). This is an immediate consequence of the definition of ≅ on [*L* → *L’*].

One can check that *F* and *G* define an equivalence of categories. The embedding η** _{S}** :

*X*→

**P**(

**O**

*X*) defines an isomorphism between (

*X*, ≡) and

*G*o

*F*(

*X*, ≡), and it is natural in

*X*. Conversely, the fact that

*F*o

*G*(

*L*, ≃) is naturally isomorphic to (

*L*, ≃) is a bit more surprising. Bauer

*et al.*[2] say that this is directly from the definition. I’ll let you do the exercise. Once you’ve done all the checking (but no sooner), you’ll realize Bauer

*et al.*are right. Oh, by the way, do not forget that morphisms are

*equivalence classes*of continuous maps. This is crucial: to show that

*f*o

*g*is an identity morphism in

**Equ**or in

**PERCLat**, it is enough to show that it maps every element

*x*, not to

*x*itself, but to an equivalent element.