Available online at www.sciencedirect.com

V ScienceDirect

Electronic Notes in Theoretical Computer Science 173 (2007) 241-262

www.elsevier.com/locate/entcs

Taut Monads, Dynamic Logic and Determinism

Ernie Manes 1

Department of Mathematics and Statistics University of Massachusetts Amherst, MA 01003, USA

Abstract

Studied are Kleisli categories of monads of sets which satisfy two properties motivated by functional properties of collections. Such categories have box and diamond operators which follow the laws of (loop-free) dynamic logic. A theorem of Kozen states that the category of sets and relations is complete for loop-free dynamic logic. It is shown that the Kleisli category of the filter monad is likewise complete. A morphism a is deterministic if <a> Q c [a]Q for all Q. Each "output value" ax is associated with a filter which is forced to be an ultrafilter when a is deterministic and ax is defined. Early work in the theory of domains abstracted from the partially ordered set of partial functions between two sets, ordered by extension. A different abstraction, suited to conditional constructs rather than recursive fixed point equations, is the notion of a locally Boolean poset, and this is used to compare restriction categories with deterministic Kleisli categories. The laws of dynamic logic in terms of [a]Q and <a> Q for a single a hold in any topological space with [a]Q the interior operator and <a>Q the closure operator.

Keywords: dynamic logic, collection type, taut monad, Boolean category, deterministic map, locally Boolean poset, filter, restriction category

1 Introduction

In this paper, a monad T in the category Set of sets and (total) functions induces three constructs of interest. The first is the Kleisli category Setx which may be thought of as the category in which expressions are evaluated when the monad class T has been activated. The second is the category SetT of algebras over the monad, which is used to determine if the monad is of collection type. The third is a class of topological spaces determined by certain endomorphisms of the Kleisli category whose box and diamond operators are the interior and closure operators.

A function f : X ^ Y maps a "point" x to another point fx. When the outputs are more general "distributions" on Y, write the set of such distributions as TY and consider functions of form f : X ^ TY. Carrying this line of thought to

1 Email: manes@math.umass.edu

1571-0661/$ - see front matter © 2007 Elsevier B.V. All rights reserved. doi:10.1016/j.entcs.2007.02.037

its logical conclusion leads to the Kleisli category of a monad in Set. [10] is the first paper to classify monads from this point of view. More recently, programming interpretations have been given to such monads, "notions of computation" in [16] and monad classes (as in Haskell) in [21] where one "keeps the code and changes the monad on the fly".

In three papers [12,13,15], the author has explored monads suitable to describe collection data types. A collection is a structure which holds values. A deterministic collection is such a structure which holds at most one value, and this paper studies such deterministic monads. In the finitary case, there are few surprises. In the infinitary case, however, the most generalized "deterministic value" (as is forced by the theory, not by definition) is an ultrafilter. The interpretation of an ultrafilter as a "generalized point" dates to the first paper about them [19].

But let us begin at the beginning.

n —>

2 Monads as Collection Types

We assume familiarity with the definition of a monad T = (T,n,f) with id T TT natural transformations subject to three equations and with the equivalent formulation T = (T,n, (•)#) where a : X u TY u a# : TX u TY subject to three equations. (Monad basics can be found in [14], and uncited definitions and facts throughout the paper can be found there). The Kleisli category SetT has sets as objects, functions X u TY as morphisms X u Y with composition P o a = X -> TY -> TZ and nx as the identity morphism of X.

That this forms a category is the essence of the axioms on a monad. Recall that a# = TX —— TTY — TY and that fx = (idTX)# and for f : X u Y,

Tf = (f0)# where f0 = X ——Y — TY. For Lemma 2.24 and Proposition 5.7, we recall that a monad map A : (S,n, (•)#) u (T,n, (•)#) is characterized by the equations n A = n and the following commutative squares induced by a : X u SY:

sx—^TX

a* | | (AYaf

SY —t—" TY

Example 2.1 The list monad is L = (L,n,^) with LX the set of all lists [xi, .. ,Xn], (n > 0), with Xi E X; (Lf )[x, ...,xn ] = [fxi,... ,fxn\; nx (x) = [x];

Hx [w1,..., wn] is the concatenation w1 -----+wn. For a : X u LY, a# [x1,..., xn]

is obtained by substituting a(xi) for xi and then flattening.

Aspects of the monad structure are subject to well-known functional programming interpretations and we discuss two such aspects using the list monad as a specific example. Lf is Map f and we generally give this interpretation to Tf. Similarly, fix is thought of as a "flatten" operator. Not every monad would behave correctly with respect to such interpretations about collections. One imagines that there is a large wish list of potential axioms for a useful theory. Surprisingly,

we shall require only two such axioms. In what follows, we write 2 = {0,1} with 0 = False, 1 = True. Thus the characteristic function xa : X ^ 2 of A c X satisfies X-1(1) = A. The two properties can loosely be expressed as follows.

(1) Given A c X, there exists a 2-valued functional expression to determine if t E TX holds only elements of A.

(2) Given that t E T22 holds elements in A c T2 and that each element of A holds only the value True, then (t) holds only the value True.

That these properties hold for the list monad is easily seen. Consider Boolean "and" A : L2 ^ 2 with A[x1,. ..,xn ] = 1 O xi = 1 for all i. Then LX L2 2 is true of [x1 ,...,xn] if and only if each Xi E A. Thus the desired functional expression to establish (1) is that which maps xa on the input list and

then folds the result with "and". (2) asserts that each symbol in w1 -----+wn is

True if and only if this holds for each wi.

It is not hard to formalize (1,2) as requirements for an arbitrary monad of Set. T preserves monics (even empty ones) [13, Page 84]. Hence for A c X, "TA c TX" so that TA formalizes {t E TX : t holds only elements of A}. In particular, ^ = xt 1 : T2 ^ 2 formalizes the elements of T2 which hold only 1 (where, recall, 1 = True). Thus the functional expression to determine if t E TX

t (xa)

holds only elements in A c X is TX that this expression works is that the squares

■> T2 -> 2 and the formal statement

^T (XA)

(which always commute) are pullbacks. (Here, A c X has inclusion i : A ^ X. We use - as a one-element set rather than 1 to avoid confusion with True). For A = {1} c 2, xa = id so if (3) is always a pullback, the square

Tic-- 1

T (True)

in particular is, that is in general,

(4) ^ = xti

(2) may be expressed by saying that for t E TT2, ^(r) E T1 o (T xTi )t g T1, that is, the square

TT 2 T2

commutes.

We are now ready to talk about the category SetT of algebras of the monad T. See [9,14] for basic facts. The objects are all (X,£) with £ : TX ^ X the structure map satisfying the two equations at the left, with maps called T-homomorphisms satisfying the square on the right:

nx _ _ T£ _ _ Tf

By the monad laws for T, (TX, fix) is a T-algebra. It is freely generated by X (in the same sense as one talks about free monoids, groups and modules), since for each

function f : X ^ Y with (Y, 9) a T-algebra, f # = TX — TY — Y is the unique T-homomorphism with f #nx = f. The earlier a# : TX ^ TY is a special case of this construction. Thus to prove that two T-homomorphisms f,g : (TX,fx) ^ (Y, 9) are equal it suffices to show equality restricted to the "generators" nx, that is, that fnx = gnx. By the naturality of f, Tf : (TX,fx) ^ (TY,fy) is a T-homomorphism for any f : X ^ Y. By the middle square in (6), every structure map is a T-homorphism. This proves directly that f # : (TX,fx) ^ (Y, 9) is a T-homomorphism.

The categories of form SetT are precisely the equationally definable classes of universal algebras (with not necessarily finitary operations) with the only exceptions being situations such as complete lattices whose free algebras are "too large to have a cardinal number".

Say that a monad T is trivial if it has no algebra with two or more elements. In particular, |TX| < 1. There are only two trivial monads, easily discovered by the reader, and we will henceforth work only with non-trivial monads. In that case, by taking cartesian products in the category of algebras, there exist algebras of arbitrarily large cardinality.

Lemma 2.2 For a non-trivial monad T = (T,n,f), if a = b E X then nx (a) / Tb in TX. (We abuse notation and write Ta for T{a}, here and elsewhere).

Proof Let (Y,9) be a T-algebra with at least three elements and let f,g : X ^ Y be functions with fa,fb,ga distinct and fb = gb. Then f #,g# : (TX,fx) ^ (Y, 9) agree on Tb but disagree on nx (a) so nx (a) / Tb. □

Corollary 2.3 For a non-trivial monad, nx is componentwise monic.

In [13, Definition 3.1] a support classifier for a monad T was defined to be a T-algebra (2,^) satisfying that (3) is always a pullback. In that case, (4,5) hold since (4) follows from (3) being a pullback and (5) is one of the T-algebra equations in (6). Conversely, to show that (3)-pullback and (5) implies support classifier (with

^ defined by (4)) we need only show the remaining algebra law that 2 -—U T2 -—U 2 = id. By Lemma 2.2, 0 / T1 so ^2(0) = 0. As 1 E T1, (1) = 1. Thus the axioms (3)-pullback and (5), motivated by functional programming concerns about collections, are equivalent to the existence of a support classifier.

Example 2.4 Let TX be the set of all formal real linear combinations A1 x1 + ••• +

\nxn with \i real and xi E X, nx(x) = 1x, a#(A1x1 + • • • + Xnxn) = A1a(x1) +-----+

\na(xn), simplified in the usual way. The algebras are real vector spaces. Since there is no two-element real vector space, this monad has no support classifier.

We have motivated that T should have a support classifier and we now reap the benefits of known theorems. For that, a few definitions are needed. An inverse

image square is a pullback of X-> Y <-Q with j monic. A functor F is taut

if it maps inverse image squares to pullbacks (which are then necessarily inverse image squares). A natural transformation is taut if the naturality squares induced by monics are pullbacks. A monad (T,n,v) is taut if T,n,V all are.

Theorem 2.5 [13, TheoremS.S] A monad has a support classifier if and only if it is non-trivial and taut. □

In the interests of brief terminology, we will hence favor the term "taut monad" for a monad with a support classifier.

Example 2.6 The filter monad F = (F, n, v) is a taut monad. Though well known, we review the definition here. FX is the set of all filters on X (i.e. the set of all filters on the Boolean algebra 2X) including the improper filter 2X, (Ff)F = {B c Y : f-1B E F}, nx(x) is the principal ultrafilter prin(x) = {A c X : x E A}, Vx(H) = {A c X : □A E H} (where □A = {F E FX : A E F}), a#F = {B c Y : {x E X : B E ax} E F}. By the theorems of [6,22], the category of F-algebras is continuous lattices with morphisms that preserve directed suprema and arbitrary infima, the structure map ^ : FL u L of the continuous lattice L being the lim-inf operation £(F) = Vfe^A F. F is taut with support classifier 2 with 0 < 1.

The filter monad is intimately connected with general taut monads as the next result shows.

Theorem 2.7 [13, theorem 3.3] A monad T is taut if and only if there exists a taut monad map T u F. In that case, the support map

TX suP-x ) fx, t u {A c X : t E TA}

defines a canonical taut monad map T u F.

Any monad map A : S u T for monads in a category K induces a forgetful functor KT u KS defined by (X,TX —U X) u (X, SX —U TX —U X). Applying

this in the context of the previous theorem, we see that if L is any continuous lattice and T is any taut monad, then £ : TL u L, £(u) = V^taA A is a T-algebra. It is routine to check that if L = 2 with 0 < 1, then the resulting T-algebra is the support classifier of T.

We now veer off in what seems at first to be a totally unrelated direction, but which will provide us with yet another characterization of taut monads. We consider how to interpret loop-free dynamic logic [7,8,18] in a Kleisli category.

Definition 2.8 A category B is a Boolean category [11] if the following four axioms hold.

(B.1) B has finite coproducts. The initial object is denoted 0. f j

(B.2) For X —u Y Q, with j a coproduct injection, there exists a pullback

with i a coproduct injection. (B.3) A coproduct injection pulls back a coproduct to a coproduct. (B.4) If X —U X X is a coproduct, then X is an initial object.

Proposition 2.9 [11, Proposition 5.15, Theorem 5.11] The following hold in any Boolean category.

(1) Every coproduct injection is an equalizer. The subobjects of X represented by a coproduct injection are called summands of X and the class of such is denoted Summ(X).

(2) Summ(X) is a Boolean algebra with least element 0 u X, greatest element 1 : X u X, intersection via pullback and Boolean complement via (unique) coproduct complement. For Q,R E Summ(X), Q u Q U R ^ R is a coproduct if and only if Q n R = 0. □

As explained in [11], a Boolean category is a semantic model of dynamic logic with box operator [f]Q and diamond operator <f>Q = ([f]Q')'. A number of examples will be given shortly.

For any monad T in a category K, there is a canonical functor K u Kt which is the identity on objects and which maps f : X u Y to f0 : X u TY (as defined at the beginning of this section). For a non-trivial monad in Set, n is pointwise monic, so this functor may be regarded as the inclusion of a subcategory. In general, this functor has a right adjoint, the functor which maps a : X u Y in Kt to a : X u TY in K. In particular, if P —U X Q is a coproduct in K, P -U X Q

is a coproduct in Kt. We now come to a subtle point. Even though coproducts in a category are unique up to isomorphism, the sub-poset of summands in K and Kt can be quite different. First observe, that for every nontrivial monad, the Kleisli category is equivalent to the category of free algebras via

a : X u TY u a# : (TX, vx) u (TY, vy ). Consider the real vector space monad of Example 2.4. The Kleisli category of this monad is equivalent to the category of algebras, all real vector spaces, because every vector space has a basis. The only

Tr u e False

nondegenerate coproduct decomposition of 2 is * -> 2 <- *. Now, T2 is

the plane and the induced coproduct decomposition of the plane is as the direct sum of the x-axis and the y-axis. But any pair of distinct lines through the origin gives a coproduct decomposition in the Kleisli category. The four-element Boolean algebra 22 has been enlarged to a non-Boolean infinite poset of summands. From our current point of view, the summands are the tests of the assertion logic. In adding a monad "on the fly" we want the new assertion logic to apply to the same tests. But here we get ahead of ourselves, so let us turn to the requisite definition and theorem.

Definition 2.10 For a monad T in K, say that summands are standard if for

every coproduct P -—U X Q in Kt there exists a coproduct A —u X B in K and an isomorphism ^ in Kt such that the triangle

commutes in Kt.

In the vector space example, summands are not standard. If in the triangle above, A is the x-axis and P is the line y = x, then A and P are isomorphic vector spaces but no isomorphism between them makes the triangle commute.

We are now ready to give our final characterization theorem of general taut monads.

Theorem 2.11 [15, Theorem 9.2] A non-trivial monad T is taut if and only if SetT is a Boolean category for which the functor Set u SetT is taut and for which summands are standard. □

Any endomorphism a : X u TX in SetT is a "one-object model" of dynamic logic. This generalizes the Kripke models first introduced (see e.g. [8]).

The introduction of the box operator in SetT creates the need to better understand these pullbacks. This problem has a straightforward solution as follows.

Proposition 2.12 Let T be a taut monad, and let a : X u TY, P c X with inclusion i : P u X, Q c Y with inclusion j : Q u Y. Consider the squares

i° Ti i

P —--X TP ' TX P —-—«► X

ß\ (A) Ja ß#\ (B) J a# ß\ (C) J

Q-TQ--+TY TQ--+TY

j Tj Tj

where (A) is in Sety and (B,C) are in Set. Then if any square commutes, they all do. If any square is a pullback, they all are.

Proof The result for (A,B) holds even more generally and for any monad in any category [11, Lemma 6.10 (2)]. Now consider the diagram

P Vp ' TP /3# > TQ i | (D) | Ti (B) J Tj

X —^—«► TX-T—^ TY

whose perimeter is (C). As the naturality square (D) commutes, (C) commutes if (B) does. Conversely, both paths in (B) are homomorphisms from the free algebra (TP,^p) so (B) commutes if it commutes restricted to the "generators" r/P, that is, (B) commutes if (C) does. Since (D) is a pullback as n is taut, (C) is a pullback if (B) is. Conversely, as a# = ny (Ta), 3# = nq (T/3), the diagram

TP TTQ —TQ 771 J TTj | Tj

TX -tR—► TTY —r.-«► TY

la №y

and the tautness of T and n give that (B) is a pullback if (C) is. □

We now use the tools from Theorems 2.7, 2.11 to obtain a useful result:

Proposition 2.13 For T a taut monad, a : X u TY, Q c Y,

[a]Q = {x E X : Q E suppY(ax)} <a> Q = {x E X : Q' / suppY (ax)} (where Q' = Y \ Q is the complement of Q in Y).

Proof Because summands are standard in SetT, if (A) in Proposition 2.12 is a pullback, it constructs P = [a]Q in SetT. By that proposition, the pullback (C) in Set has P = [a]Q so that x E [a]Q o ax E TQ o Q E suppY(ax). Thus x E <a> Q o x E ([a]Q')' o x / [a]Q' o Q' / suppY(ax). □

We round out the section by giving a number of examples and discussing their properties.

Example 2.14 Let E be a set of "exceptions". Then (T,n, is a taut monad if

TX = X + E, nx = X —^U X + E, = X + E + E <mX-nE,mE> > X + E. In the Kleisli category, a program behavior a : X u Y + E either maps x to an output y E Y or raises an exception e E E. (If divergence is considered as an exception in E, it is not "raised" of course). For 3 : Y u Z + E, 3# =< a,inE > so (3 ◦ a)x = e E E if ax = e; that is, an exception"sticks". For Q c Y we have

[a]Q = {x E X : ax E Q + E} <a> Q = {x E X : ax E Q}

An algebra is a pair (X,p) where X is a set and p : E u X is any function. Homomorphisms f : (X,p) u (Y,q) satisfy ft = q. The support classifier is (2,p) with p(e) = True for all e. When E is empty, the Kleisli category is Set. When E has one element, the Kleisli category is the category Pfn of sets and partial

functions, and the category of algebras is the category of sets with base point. Here the box and diamond operators are

[a]Q = {x e X : if ax is defined then ax e Q} <a> Q = {x e X : ax is defined and ax e Q}

We call the case when E has one element the exception monad and write it Ex = (Ex,n,v).

Example 2.15 The power set monad is the taut monad given by P = (P,n,v) has PX = 2X, (Pf)A = fA = {fa : a e A}, nx(x) = {x}, vx(A) = UA, a# A = U aeA a (a). The Kleisli category is isomorphic to the category Rel of sets and relations where a : X u 2Y corresponds to the relation R c X x Y via xRy o y e a(x). For R c X x Y, S c Y x Z, the composition that corresponds to Kleisli composition is the usual one, xSRz o] y, xRy, ySz. The algebras of this monad are complete sup-semilattices where the structure map £ : PX u X is the supremum. Thus x < y o £{x,y} = y. The support classifier is 2 with 0 < 1. The box and diamond operators here are

[a]Q = {x e X : ax c Q} <a> Q = {x e X : ax n Q = 0}

Rel is the standard model of multi-valued semantics. One can choose submonads to enforce further properties, e.g. non-empty subsets or finite subsets; these are submonads because a singleton is non-empty and finite and because a non-empty union of non-empty sets is non-empty and a finite union of finite sets is finite.

Example 2.16 We continue the discussion of the list monad of Example 2.1. The algebras are monoids, where the structure map £ : LX u X of a monoid (X, •, 1) is

£[xi,..., xn] = xi.....xn. Conversely, given an algebra (X, £), define x • y = £[x, y]

with unit £[ ]. This is a taut monad; the support classifier is 2 with unit True and multiplication A, as was central to our earlier motivations. The box and diamond operators are defined by

[a]Q = {x e X : ax e LQ} (possibly ax empty) <a> Q = {x e X : ax has a symbol in Q}

Example 2.17 Define the probability monad Pr = (Pr,n,v) as follows. Pr X is the set of all countable-support probability distributions ^x Axx with Ax e [0,1] the real unit interval, and ^ Ax = 1. "Countable support" means that Ax = 0 for at most countably many x. This is a submonad of the real-vectorspace monad of Example 2.4. To see this, consider a#(Y^x Axx) = Axa(x) and use standard properties of absolutely convergent series: if a(x) = ^y @yy,Yly12x Ax^ = AxJ2y Py = x Ax = 1. In the Kleisli category, outputs are probability distributions. Flipping a coin is a map a : 1 u {H, T}. Let ¡3(H) cause two dice to be summed whereas 3(T) causes one die to be rolled. The Kleisli composition 3 o a : 1 u {1,..., 12} performs a correct probability calculation. Noting that Pr 2 can be identified with [0,1], the subobject classifier is the characteristic function of {1}, [0,1] u 2. The box and diamond operators are

[a]Q = {x E X : if a(x) = ^^ Xyy, then Xy = 0 ^ y E Q}

<a> Q = {x E X : if a(x) = ^^ Xyy then there exists y E Q with Xy = 0}

We now paraphrase the Kozen completeness theorem [8] generalized to the setting of Boolean categories [11, Theorem 11.15].

Theorem 2.18 Let B be a Boolean category. For X an object of B, let 3X be the set of ultrafilters on the Boolean algebra Summ(X). Define the Kozen functor K : B u Rel by KX = 3X and, for a : X u Y, U (Ka) V o V V E V <a> V E U. Then K is a taut functor which preserves finite coproducts. By the properties of this functor one shows that any valid sentence of loop-free dynamic logic which is true in Rel is true in B. □

Remark 2.19 By Proposition 2.13, The Kozen functor for SetT is

U (Ka) V o V VE V {x E X : V' / suppY (ax)} E U

Example 2.20 It follows from Theorem 2.7 that any non-trivial submonad of the filter monad F is taut. Here, the box and diamond operators are given by

[a]Q = {x E X : Q E ax} <a> Q = {x E X : Q' / ax}

We now offer a few heuristic remarks concerning proper filters as distributions. A proper filter F "homes in" in stages where each A E F is a stage. When stages A1,...,An have been selected, Ai n---n An is a finer stage. Fixing a : X u FY, Q c Y, [a]Q = {x E X : Q E ax} is the set of all inputs whose outputs allow Q as a stage. The principal ultrafilter prin(x) is a true point because {x} is a stage. In general, the more stages the more a filter can home in so it is natural to consider maximal filters as generalized points. We assume the Boolean prime ideal theorem without further comment, so each (proper) filter is the (nonempty) intersection of the ultrafilters that contain it. The set of such ultrafilters is the set of generalized points the filter homes in on.

A compact Hausdorff space may be regarded as a structure that realizes an actual point for each ultrafilter. Now 3 is a submonad of F and it is well known that its algebras are precisely the compact Hausdorff space whose structure map 3X u X is ultrafilter convergence. The forgetful functor from continuous lattices to compact Hausdorff spaces induced by the monad map 0 u F assigns the Lawson topology.

The following proposition supports the single-valuedness of ultrafilters as opposed to filters.

Proposition 2.21 If G is a submonad of 0, the Kozen functor K : Set^ u Rel factors through Pfn.

Proof Let a : X u GY and let U (Ka) V, U (Ka) W. If V = W then, as V, W are ultrafilters, 3 V E V with V' E W. Then <a> V = {x E X : V' / ax} E U

and <a> V' = {x e X : V / ax} e U. As any two elements of U have non-empty intersection, there exists x with V,V' / ax, and this is impossible as ax is an ultrafilter. Thus V = W. □

While Rel is the prototypical Boolean category, the theory of this section suggests that Setp is the prototypical taut-monad Kleisli category. This point of view can be pushed further by independently proving a "Kozen completeness theorem" for Setp. To begin, first observe that for any monad map A : S u T over any category K, there is an induced functor H\ : Ks u Kt defined by

TT / a a

H\(X -> SY) = X -> SY -> TY. For a taut monad with support map

supp : T U F, Hsupp(X —U TY) = X —U TY —U FY. Comparing the formulas of Proposition 2.13 and Example 2.20, [a]Q = {x e X : Q e supp(ax)} = {x e X : Q e (Hsupp a) x} = [Hsupp a]Q, so that any dynamic-logic assertions which are universally valid in Setp must be universally valid in SetT. In particular, if an assertion holds in Setp it holds in Rel = Setp. Applying Theorem 2.18, we have

Theorem 2.22 Any loop-free assertion of dynamic logic that is valid in Setp is valid in all Boolean categories. □

For the most standard collections such as lists, probability distributions, bags, and so forth, a distribution t has a definite set of members mem(r), e.g. mem[a,b,a,c,b] = {a,b, c}, for t = ^ Ax x e PrX, mem(T) is {x : Ax = 0}. In such cases, supp(T) = prin(mem(T)) is a principal filter (prin(A) = {B : A c B}). The submonad of principal filters is the subsets monad prin : P u F. In the principal case, the completeness theorem for Rel results via a monad map to P. We formalize this definition as follows.

Definition 2.23 A taut monad is principal if its support map factors through prin : P u F. In that case, for t e TX, suppX (t) = prinX (memX (t)) = {A c X : memX (t) c A} which defines the subset memX (t) of members of t.

The next lemma will be used in Proposition 5.7. This property was used as an axiom on collections in [12].

Lemma 2.24 Let T be a principal monad, a : X u TY, t e TX. Then

memY (a#t) = ^J memY (ax)

x&m,emX (t)

Proof Because mem : T u P is a monad map, the following square commutes

(as reviewed at the beginning of Section 2).

memX TX-^PX

(memX a)#

TY->- PY

-1 1 memY r 1

252 E. Manes /Electronic Notes in Theoretical Computer Science 173 (2007) 241—262

Applying the definition of (•)# for the power set monad, we have

memY (a#t) = (memY a)# memX (t) = memY (ax) □

xgmemx (t )

3 Deterministic Monads

Partial functions are deterministic in that it is not possible to witness two-valued behavior. This may be defined in any category as follows.

Definition 3.1 A morphism f : X u Y in any category is deterministic if for every coproduct decomposition Q —> Y <— Q' of Y there exists a commutative diagram

P—- X--P'

Q —-Y--Q'

in which the top row is a coproduct decomposition of X. If, addition, this can always be done with both squares pullbacks, we say f is crisp.

This definition does not require any coproducts or pullbacks to exist. For the Kleisli category of any monad in Set, coproducts are disjoint unions which meshes well with the philosophy behind the definition.

Definition 3.2 A monad is deterministic if all morphisms in its Kleisli category are deterministic. Similarly, a monad is crisp if all morphisms in its Kleisli category are crisp.

Example 3.3 Let 3*X = {U E FX : U is an ultrafilter or U = 2X}. We check that 3* is a submonad of F. We have prin(x) E 3X c 3*X. Now let a : X u 3*Y, U E 3*X. We must show that a#U = {B c Y : {x E X : B E ax} E U} E 3*Y. Clearly U = 2X ^ a#U = 2y. Otherwise, U E 3X. Let B c Y. To show: B E a#U or B' E a#U (possibly both). Suppose B / a#U. As U is an ultrafilter, U = {x : B / ax} E U. For x E U, ax = 2y so ax E 3Y and {x : B' E ax} = U E U, so B' E a#U as desired.

It is easy to check that the 0*-algebras are compact Hausdorff spaces with base point and that the discrete space 2 with base point True is the support classifier.

Definition 3.4 In a Boolean category, f : X u Y is total if [f]0 = 0.

Lemma 3.5 [11, Proposition 12.2, Corollary 12.3] For f : X u Y in a Boolean category, the following hold.

(1) f is total o V Q <a> Q D [a]Q.

(2) f is deterministic o V Q <a> Q c [a]Q.

(3) f is crisp o V Q <a> Q = [a]Q.

(4) f is crisp o Q ^ [f]Q is a Boolean algebra homomorphism Summ(Y) ^ Summ(X). □

Thus a map in a Boolean category is crisp if and only if it is total and deterministic.

By [13, Proposition 3.12] any submonad G of the filter monad F is taut and the inclusion i: G ^ F is a taut monad map.

For f : X ^ Y a function and T a taut monad, f0 = X -> Y -> TY is

crisp in SetT. the converse is far from true, as we see in the next proposition, which provides further evidence that ultrafilters are like points.

Proposition 3.6 Every submonad of 0 is crisp.

Proof Let G be a submonad of 0 . For a : X ^ GY, [a]Q = {x e X : Q e ax} and <a> Q = {x e X : Q' / ax} = {x e X : Q e ax} as ax is an ultrafilter. Thus [a]Q = <a> Q so a is crisp. □

We can now relate deterministic maps to 0*.

Proposition 3.7 For a taut monad T, T is crisp if and only if supp : T ^ F factors through 0. T is deterministic if and only if supp factors through 0*.

Proof For a : X ^ TY is crisp o V Q [a]Q =<a> Q. By Proposition 2.13 this happens if and only if (V x V Q Q e supp(ax) o Q' / supp(ax)) oV x ax e fiX. As any t e TX has form ax for some a, this proves the first statement. Similarly, a is deterministic o (V x V Q Q' / supp(ax) ^ Q e supp(ax)) o V x ax e .□

Corollary 3.8 Any taut monad T contains a largest crisp submonad Tcrisp whose Kleisli category consists of the crisp morphisms of Sety. Similarly, T has a largest deterministic submonad Tdet whose Kleisli category consists of the deterministic morphisms of Sety.

Proof Form the pointwise pullbacks (which are pullbacks in the category of monads and monad maps)

Tcrisp T(lef ►- J1

| |supp

P--ft, -- F

and then use the Proposition. (All monad maps in the diagram are taut). □

Lemma 3.9 Let S, T be taut monads, X : S ^ T a taut monad map. Then if T is deterministic so, too, is S; if T is crisp then S is also.

Proof For a : X ^ SY, Q C Y with inclusions j : Q ^ Y, j' : Q' ^ Y, consider the diagram whose explanation follows:

P---«- X ----p>

SQ-J--* SY+--- SQ'

TQ-Tj-- TY --—-TQ'

The bottom squares are the naturality squares for A induced by the monies j,j' and so these are pullbacks. As Ay a is deterministic in Setx by hypothesis, there exists P C X with inclusions i : P u X, i' : P' u X and maps P u TQ, P' u TQ' completing the perimeter of the diagram. By the pullback property, these maps factor via 3, 3' through SQ and SQ', completing the diagram. Thus a is deterministic. If Ay a is crisp as well then, from the same diagram, using elementary pullback-pasting and the fact that S preserves monics, a is crisp. □

Theorem 3.10 Let T be a taut monad in Set. Then T is deterministic if and only if there exists a taut monad map T u0*. T is crisp if and only if there exists a taut monad map T u 0.

Proof We give the proof for "deterministic", the crisp case being entirely similar. If T is deterministic, by Proposition 3.7, supp = T -—u 0* —u F with i the submonad inclusion. As i and iA are taut monad maps, so is A. Conversely, suppose A : T u 0* is a taut monad map. The taut inclusion i : 0* u F is its own support map by [13, Proposition 3.6] so that 0* is deterministic by Proposition 3.7. Thus T is deterministic by Lemma 3.9. □

We emphasize that T is necessarily a taut monad if it admits a taut monad map to a taut monad, so the a priori assumption that T be taut in the previous theorem is necessary only in one direction.

Example 3.11 The exception monad Ex of Example 2.14 is taut and deterministic since

prinx+id

x + *-> 3+x

is a taut monad map. (This holds, as well, for any set E of exceptions in that example).

Theorem 3.12 Let T be a principal taut monad. Then T is deterministic if and only if T admits a taut monad map to the exception monad.

Proof If prin(A) is an ultrafilter, A is a singleton so 0*X n PX = Ex X. □

At this point one might wonder if every deterministic taut monad admits a taut monad map to the exception monad. The next example shows that this is not the case.

Example 3.13 There is no monad map 0*u Ex. To see this, note that the variety of Ex-algebras is the category Set* of sets with base point whereas, as has already been discussed above, the variety of 0*-algebras is the category CT2* of

compact Hausdorff spaces with base point. It must be shown, then, that there is no forgetful functor H(X, *) = (X, *, T) with T a compact Hausdorff topology on X in such a way that every function f : (X, *) ^ (Y, *) with f (*) = * is such that f : H(X, *) ^ H(Y,*) is continuous. To find a contradiction, suppose that such H exists and choose X = {xi,x2,...} with base point xi and write H(X,xi) = (X,xi,T). By Hausdorff, there exists 0 = U e T with xi / U. For any 0 = A c X with xi / A, let f : X ^ X be any function with f (x) = xi if x / A whereas f (A) c U. Then A = f-i(U) is open. This shows that X \ {xi} is an open discrete subspace. Now let xi e V e T. As {V} U {{x} : x / V} has a finite subcover, X \ V is finite. Thus if S is the one-point-compactification topology induced by adding xi to the locally compact discrete space X \ {xi}, TcS. As both topologies are compact Hausdorff, T = S. Now let g : X ^ X be defined by g(xi) = xi, g(x) = x2 if x = xi. As lim(xn : n = 0,1,... ,) = xi, g is not continuous. This is the desired contradiction.

Example 3.14 Rel^et = Pfn. For the submonad Po of the subsets monad P, P0X = {A c X : A is finite}, The Kleisli category is the category of sets and finite-valued relations. The deterministic maps also produce the category Pfn.

Example 3.15 Let L = (L,rj,^) be the list monad. The deterministic maps f : X ^ LY in SetL satisfy fx = yn for some y e Y, n > 0 because Ld arises as the pullback

L d--Ex

where EX = X + * —> P0X maps x to {x} and the unique element of * to 0. Noting that y0 = z0 even if y = z, let N+ = {1,2,3,...}, and define Ld X = (X x N+) + {±}. In the Kleisli category, maps are partial functions whose values include an integer > 1 and these integers multiply when maps are composed.

Example 3.16 Let M be a monoid with unit e and multiplication mn. Let

TX = (X + {±}) x M

X TX, x ^ (x, e)

TTX —^ TX, (±,m) ^ (±,m), ((x,m),n) ^ (x,mn)

Such T is a deterministic taut monad. When M is (N, +,0), the morphisms may be interpreted as partial functions whose values return a computation time.

Example 3.17 It is obvious that Fdet = 0*. It is easily checked that NX = {F e FX : P| F = 0} is a submonad of F. We called this the neighborhood monad in [10] since the most well known example of elements of NX are neighborhood filters in a topological space. As NX n is the set of principal ultrafilters on X, Ndet = N n 0* is the identity monad. Thus the only deterministic maps in the Kleisli category of N are the ordinary total functions between sets.

The N-algebras are "continuous lattices without top". A more precise description is as follows. An N-semilattice is a partially ordered set with all non-empty infima (and hence all bounded suprema) such that for every non-empty family (Di : i e I) with each A a bounded directed subset of X, the following equation holds:

A(V Di) = V (A di)

i den Di i

We leave it to the reader to verify that SetN is the category of all N-semilattices with morphisms that preserve non-empty infima and bounded directed suprema. (Hint: show that (NX, c) is the free N-semilattice generated by X with f # : NX u Y defined by f #(F) = VAeF A(fA) ).

4 Comparison with Restriction Categories

Definition 4.1 A restriction category [4] is a category equipped with a unary operation / : X —» Y i—» / : X —» X subject to the following four axioms:

(R.1) For f : X Y, f J = f. (R.2) For f \ X Y, g \ X Z, Jg = gj. (R.3) For f : X Y, g : X Z, ~gj = ~g~]. (R.4) For X M Y Z, gf = fjf.

In any restriction category, each endomorphism of form / : X —» X is an idempo-tent. We call it a restriction idempotent and the set R(X) of all such restriction idempotents is a commutative idempotent semigroup and so forms a semilattice. The interpretation of / is "the domain of definition of /", e.g. fx = x if fx is defined and is otherwise undefined. It is discussed in precise detail in [5] that the axioms are not compatible with "more than one exception", so our discussion here is only intuitive. In any restriction category, a morphism / is total if / = id. Any category is a restriction category if all maps are declared total, so that there need not be any exceptions. The interpretation of Axiom (R.4) is that all maps are deterministic. To see the idea, suppose fx includes two distinct outputs a, b. Let ga be defined, gb not. Then b is an output of / gf x = fx whereas g f x = a so (R.4) fails.

Let us be more precise for Setx with T taut. View T0 (the distributions on the empty set) as the set of exceptions of T. The condition that there is exactly one exception is then that T0 = * and we call T a zero monad if it satisfies this condition since then 0 is the zero object of the Kleisli category. This Kleisli category then has a natural definition of restriction as follows:

Definition 4.2 For a : X —» TY with T a zero monad, define a : X —» TX by the following diagram in which the top row is a coproduct:

[cü]0 —-—- X ->—-— ([a

n—-TX> Vx x

where i',i,j are inclusions.

Theorem 4.3 [15, Theorem 6.4] For a taut zero monad T with the restriction operator of Definition 4.2, Sety is a restriction category if and only if T is a deterministic monad. □

Example 4.4 The monad 0* is a deterministic zero monad. F is a zero monad which is not deterministic. 0 and N are not zero monads.

The intense study of domains in computation theory begins by observing that the set Pfn(X, Y) of partial functions from X to Y is ordered by extension. This is available in any restriction category as follows.

Every restriction category is an ordered category. For f,g : X ^ Y say that f<gtfgf = f, literally ug restricted to the domain of / is /". This is always a partial order and composition on either side is monotone.

The study of domains has for the most part not focused on the more mundane programming constructs such as if-then-else. But this construct is readily available in the ordered category Pfn: if P c X with inclusions i : P ^ X, i' : P' ^ X, and f,g:X^Y,iiP then / else g : X —» Y is f i V gi!. What happens here, is that the semilattice R(X) of restriction idempotents is 2X and this is the Boolean algebra of tests. A general class of ordered sets that have the necessary structure was introduced in [5], and are defined next.

Definition 4.5 A partially ordered set P with a least element 0 is a locally Boolean poset if for all x e P the principal downset jx = [0,x] is a Boolean algebra whose finite suprema are suprema in P. If P, Q are locally Boolean posets, a function f : P ^ Q is a locally Boolean map if f is monotone, f (0) = 0 and, for all x, the induced function [0, x] ^ [0, fx] is a Boolean algebra homomorphism. Denote the category of locally Boolean posets as LBP.

A natural associated class of restriction categories is then as follows.

Definition 4.6 A classical restriction category is a restriction category C which satisfies the following two axioms:

(CR.1) C is enriched over LBP, that is, the homset C(X,Y) under the restriction ordering f<giigf = f is a locally Boolean poset and composition on either side is a locally Boolean map.

(CR.2) Denoting the least element of C(X,Y) as 0 : X Y, if /, g : X Y are disjoint, written / _L g, in that f~g = 0 then / V g exists in C(X, Y).

We regard Boolean algebras as forming a variety of universal algebras. As such, 0 is the terminal object so [0,x] ^ [0,0] is a Boolean algebra homomorphism.

Example 4.7 Pfn is a classical restriction category. Here, f(x) = x if fx is defined and is otherwise undefined. [0, f] = 2D with D = {x : fx is defined} is how homsets are locally Boolean posets. A somewhat more gradual explanation can be given as follows. In LBP, coproducts exist as the disjoint union poset with all least elements identified. Products exist in LBP using the pointwise-ordered product poset. Every Boolean algebra is a locally Boolean poset. Start with the Boolean algebra 2. The flat poset A± obtained by adding a bottom element to discrete A a simply a typical copower of 2 in LBP. The locally Boolean poset power ((Y_l)x is precisely the poset Pfn(X, Y). The local Booleanness of composing on either side now follows from standard properties of product and coproduct.

Ex is a deterministic zero monad and its Kleisli category (namely Pfn) is a classical restriction category. A surprise of this paper is that this happens for every deterministic zero monad.

Theorem 4.8 The Kleisli category of a deterministic zero monad T = (T, n, y) is a classical restriction category.

Proof SetT is a Boolean category with zero maps and all maps deterministic, and is a restriction category as in Definition 4.2 by Theorem 4.3. That such a category is a classical restriction category is one of the main theorems of [5]. We briefly indicate how the locally Boolean structure arises in this specific context. The lattice structure of [0,y] is as follows. If a, 3, Y : X ^ Y with a,3 < y. The infimum a A /3 is a ¡3. The supremum a V /3 is defined by

[a]0-+-1-([a

a V ß

TX^^TY^—TX

where i,j are inclusions. Now, the restriction idempotents of X constitute the interval [0,1] which is order-isomorphic to Summ(X) by [11, Theorem 8.15] and so forms a Boolean algebra. Thus [0,7] is an interval in a Boolean algebra so is itself a Boolean algebra. It is shown that [0,7] —» [0,7], a 1—» a is an order isomorphism. □

5 Dynamic Logic of Spaces

In this section, we observe that for any topological space X there is an appropriate endomorphism a in a taut-monad Kleisli category for which [a]Q, <a> Q are, respectively, the interior and closure operators of the space. Thus any valid formula of dynamic logic involving one a is a law of topological spaces. We also study classes of topological spaces induced by taut monads. We begin with a general definition and proposition for taut monads.

Definition 5.1 Let T be a taut monad. A T-topological space is a pair (X,t) with t : X u TX an idempotent in SetT such that [t]Q C Q for all Q C X .A subset Q is t-open if [t]Q = Q.

Proposition 5.2 For a T-topological space (X,t), the t-open sets form a topology with interior operator [t]Q and closure operator <t>Q.

Proof 0 is open since [t]0 c 0. By elementary facts about pullbacks, [t]X = X and [t](Q n R) = [t]Q n [t]R so X is t-open and a finite intersection of t-opens is t-open. If V = U V with each V t-open, x e V ^ 3 i x e V = [t] V c [t] V so V is t-open. So far, the t-opens form a topology. For any Q c X, [t]Q is t-open since (in any Boolean category) [a]([^]Q) = [fia]Q and t is idempotent with [t]Q c Q. If x G Q° there exists U = [t]U with x G U C Q. Thus x G [t]U c [t]Q. This shows [t]Q = Q°. But then Q = Q'°' = ([t}Q')' =<t> Q. □

Theorem 5.3 Every topological space is an F-topological space for the filter monad F.

Proof Let X be a topological space with neighborhood filter at x. Define t : X ^ FX by tx = Nx. Then t# : FX ^ FX maps F to {A c X : {x e X : A e } e F} = {A c X : A° e F} so that t#(tx) = t#(Nx) = {A c X : A0 e Nx} = Nx, which shows t is idempotent. By Example 2.20, [t]Q = {x e X : Q e tx} = {x e X : Q e Nx} = Q° so [t]Q c Q. □

Example 5.4 Segerburg's axiom [20] is

[a]Q n <a> R c <a> (Q n R)

This example is obviously true in Rel, so by the Kozen completeness theorem it must hold in all Boolean categories. Hence any topological space must satisfy

Q°C]R C Q7TR

Example 5.5 In Rel, a : X ^ PY is a partial function if and only if for all subsets Q,R of Y, <a> (Q U R) = <a> Q U <a> R. Equivalently, a is a partial function if and only if <a> Q c [a]Q for all Q. It follows that a topological space is discrete if and only if (Q U R)° = Q° U R° since Q C Q° obviously forces discreteness.

It is clear that Theorem 5.3 can be proved using any submonad of F which contains all neighborhood filters, such as N. However, no submonads of 0* will yield interesting spaces, as the following example attests.

Example 5.6 If T is a deterministic monad then every T-topological space is discrete. This follows from Lemma 3.5 (2) since any T-topological space satisfies Q C Q°.

A topological space is an Alexandroff space [1] if every intersection of open sets is open. It is well known that the category of Alexandroff spaces and continuous maps is isomorphic to the category of preordered sets (sets with reflexive and transitive relation) and monotone maps. The open sets are the lower sets, so jx is the minimum neighborhood of x, and the closed sets are the upper sets. Here, x < y y G {.r}.

Proposition 5.7 If T is a principal monad then every T-topological space is Alexandroff.

Proof Let (X,t) be a T-topological space, so that t o t = t, [t]Q C Q. We have

[t]Q = {x G X : Q G supp(tx)} = {x G X : mem(tx) C Q}

so Q is open if and only if mem(tx) C Q ^ x G Q. Write x < y if y G mem(tx). As mem(tx) C mem(tx), x G [t](mem(tx) C mem(tx), so x < x. By Lemma 2.24,

mem(tx) = mem(t#(tx)) = mem(ty)

yemem(tx)

so y G mem(tx) ^ mem(ty) C mem(tx). Thus if x < y, y < z then y G mem(tx), z G mem(ty) C mem(tx) and x < z. This shows that < is a preorder. If x G Q° = [t]Q and x < y then y G mem(tx) C Q ^ mem(ty) C mem(tx) C Q, so y G Q°. Thus Q° is an upper set. Conversely, if Q is an upper set and x G Q, y G mem(tx) then x < y ^ y G Q so mem(tx) C Q. This shows that Q C [t]Q. We have shown that the open sets are the upper sets of a preorder, so the space is Alexandroff. □

Example 5.8 For P the power set monad, the P-topological spaces are precisely the Alexandroff spaces.

To see this, since P is a principal monad, the previous proposition gives that all its topological spaces are Alexandroff. Conversely, if t : X ^ PX is any reflexive and transitive relation then t o t (being the composition in Rel) C t whereas t = tidx C t o t, so t is idempotent. If tx C Q then x G tx C Q so [t]Q C Q. Thus a reflexive and transitive relation is a P-topology. As tx =|x, Q° = [t]Q = {x : |x C Q}, the open sets are the upper sets. Hence an arbitrary Alexandroff space is a P-topological space. □

The nicest results for G-topological spaces arise when G is a submonad of the filter monad and we conclude with some results of that type, beginning with

Proposition 5.9 Let G be a submonad of the filter monad F. Then the following hold.

(1) If (X,t) is a G-topological space, V x G X, tx is the neighborhood filter Nx of x.

(2) A space X arises as a G-topological space if and only if V x G X, Nx G GX.

Proof Let (X,t) be a G-topological space. By Example 2.20, Q° = [t]Q = {x G X : Q G tx} so that Nx = {Q C X : x G Q°} = {Q C X : Q G tx} = tx. This proves the first statement from which the second is clear, given the proof of Theorem 5.3. □

Despite the uselessness of submonads of ft for producing spaces, as demonstrated by Example 5.6, the next proposition provides a construction which transforms arbitrary submonads of F (including of 0) into useful submonads.

Proposition 5.10 Let G be a submonad of F. Then

GX = jfe FX : F = p|(Gi : i G I ) with I = 0, Gi G GX} is again a submonad of F.

Proof For x G X, prin(x) G GX c Gx. Now let a : X ^ Gy, F G Gx and write F = H Gi with Gi G GX. then B G a# F o {x : B G ax} gF oV i {x : B G

œr} e^V'iBe As G GF, a*T = G GY. □

Recall [17] that a space has countable tightness if whenever x G A there exists a countable subset G C A with x G G.

Proposition 5.11 Let 3uX = {U G /3X : some member of U is countable}. Then 3u is a submonad of 0 and every -topological space has countable tightness.

Proof For x G X, prin(x) G f3uX since {x} is countable. Now let a : X ^ Y, U G X. Let A be a countable member of U and let Bx be a countable member of ax. Then C = |JxeA Bx is countable. For x G A, Bx G ax ^ C G ax. Thus {x G X : C G ax} D A so A is a countable member of a#U. This proves is a submonad. Now let (X, t) be a f3u-topological space. Applying Proposition 5.9, every neighborhood filter is in /3UX. Let x G A. Then A' jÉ J^x so there exists V G X with Nx U {A} c V. Let C be a countable member of V. Then A n C is a countable subset of A. As A n C G V, every neighborhood of x intersects it, so x G iilC. □

References

[1] P. S. Alexandroff, Uber die Metrisation der im kleinen kompakten topologische Räume, Mathematische Annalen 92, 1924, 294-301.

[2] Barr, M., Coequalizers and free triples, Mathematische Zeitschrift 116, 1970, 307-322.

[3] Bird, R. and de Moor, O., Algebra of Programming, Prentice-Hall, Europe, 1998.

[4] Cockett, J. R. B. and Lack, S., Restriction Categories I: Categories of partial maps, Theoretical Computer Science 270 (2002), 223-259.

[5] Cockett, J. R. B. and Manes, E. G., From Boolean categories to classical restriction categories, to appear.

[6] Day, A., Filter monads, continuous lattices and closure systems, Canadian Journal of Mathematics XXVII, 1975, 50-59.

[7] Fischer, M. J., and Ladner, R. E., Propositional dynamic logic of regular programs, Journal of Computer and System Sciences 18, 1979, 282-294.

[8] Kozen, D., A representation theorem for models of *-free PDL, in J. W. de Bakker and J. Van Leeuwen (eds.), Automata, Languages and Programming, ICALP '80, Lecture Notes in Computer Science 85, Springer, 1980, 351-362.

[9] Mac Lane, S., Categories for the Working Mathematician, Springer, Berline, 1971.

[10] Manes, E. G., A class of fuzzy theories, Journal of Mathematical Analysis and Applications 85, 1982, 409-451.

[11] Manes, E. G., Predicate Transformer Semantics, Cambridge University Press, 1992.

[12] Manes, E. G., Implementing collection classes with monads, Mathematical Structures in Computer Science 8 (1998), 231-276.

Manes, E. G., Taut monads and TO spaces, Theoretical Computer Science 275 (2002), 79-109.

Manes, E. G., Monads of Sets, in M. Hazewinkel (ed.), Handbook of Algebra, Vol. 3, Elsevier, Amsterdam, 2003, 67-153.

Manes, E. G., Boolean restriction categories and taut monads, Theoretical Computer Science, 360 (2006), 77-95.

Moggi, E., Notions of computation and monads, Information and Computation 93 (1991), 55-92.

Moore, R. C. and Mrowka, S., Topologies determined by countable objects, Notices of the American Mathematical Society 11, 1964, 554.

Pratt, V. R., Semantical considerations on Floyd-Hoare logic, Proceedings of the 17th IEEE Symposium on the Foundations of Computer Science, 1976, 109-121.

Riesz, F., Stetigskeitbegriff und abstrakte mengenlehre, Proceedings of the International Congress of Mathematicians, Series I, Fourth Congress, Rome, 2 (1908), 18-24; Kraus Reprint Limited, Nendeln/Liechtenstein, 1967.

Segerburg, K., A completeness theorem in the modal logic of programs, Notices of the American Mathematical Society 24, 1977, A-522.

Wadler, P., Comprehending monads, Mathematical Structures in Computer Science 2 (1992), 461-493.

Wyler, O., Algebraic theories of continuous lattices, Lecture Notes in Mathematics 871, Springer, Berlin, 1981, 390-413.