This page gives an elementary description of the locale of real numbers, that is the localic real line. The development is manifestly constructive and even predicative over the natural numbers (although we are somewhat careless with the language and do not always point out when a set may predicatively be a proper class). Ideally, we will show that our construction satisfies the seven ‘headline properties’ of the real line described by Bauer & Taylor (although so far we cover only the Heine–Borel theorem).
The exposition here is pretty much my own work, although of course the basic ideas are well known to many. In particular, the technical zigzag lemma is mine (but it is not a very deep result!).
To describe the locale of the real numbers, we need first of all to describe what an open in the real line is. The key insight is that an open set is determined by the open intervals of rational numbers that it contains. This is analogous to the key insight of Richard Dedekind's definition of real number: that a point in the real line is determined by which open intervals of rational numbers that it belongs to. (Once you're talking about rational numbers, things are manageable.)
An open in the real line is a binary relation on the rational numbers that satisfies the four properties listed below. Intuitively, we have iff the open interval is contained in the corresponding open set.
Property (1) is motivated because is empty whenever . Property (2) is motivated because whenever and . Property (4) is somewhat technical; it keeps from being an open, while is allowed.
The really interesting property is property (3). It in fact generalises as follows:
We call the combined hypothesis of this property a zigzag; each hypothesis is a zig, and each hypothesis is a zag. To indicate the length of a zigzag, we will count the zigs; the zigzag (1) has zigs (and zags). A typical nondegenerate zigzag with zigs is shown below; it consists of overlapping open intervals, each of which belongs to a given open set; we are motivated to conclude that the entire interval from to belongs to that open set.
Thus the zigzag property for is property (3), the zigzag property for is trivial (if , then ), and the zigzag property for may be proved by induction. (There is also a sense in which the zigzag property for is property (1), but I haven't quite got my head around that. It would be awesome if the zigzag property for could be interepreted as property (4), but that seems unlikely so far.)
If is an open in the real line, then we write to mean that is related to through and say that contains the interval from to .
We will often have occasion to consider a zigzag as in (1), but where the various zigs are taken relative to different opens. Nevertheless, we will usually want to say something about the relationship of to , and it will often be convenient to assume, for all , that and . We may do so without loss of generality as follows: consider the smallest value of such that , truncate the zigzag so that it now has only zigs, and change the new endpoint to the old endpoint . The final zig becomes , which will hold by property (2) since . Now consider the largest value of such that , and truncate similarly on the other side. We now have a zigzag with zigs that never falls below on a zag nor rises above on a zig.
To be precise:
Given a collection of opens and a zigzag in which each zig holds relative to some open in , there exists a zigzag (1) in which each zig holds relative to some open in , for each , and for each .
(Since each , it follows further that for each and for each , although this corollary doesn't seem to be particularly useful.)
At the moment, this lemma is used only in the proof of the infinite distributivity law.
The opens form a sub-poset of the power set . This poset is in fact a frame, as we will now show. (It is not a subframe of the power set, since the joins are different. It is a sub-inflattice of the power set, although this seems to be a red herring at least for infinitary meets, since those are not part of the frame structure that we need.)
The top open, denoted , is the binary relation which is always true. Given two opens and , their meet in the poset of opens, denoted , is simply their conjunction, that is their intersection as subsets of . (In fact, given any collection of opens, their meet is their conjunction.) It is straightforward to check that and are opens and to prove that these are the desired meets. Intuitively, this all works because an open interval will be contained in the intersection of a family of open sets if and only if it is contained in each individual open set.
The bottom open, denoted , is the binary relation . That is, iff . It is easy to check that this is an open; it precedes every open by property (1). Intuitively, this corresponds to the empty subset of the real line; is empty if and only if . However, note that is not the empty subset of ; the notation follows our topological intuition rather than the algebra of relations.
Given two opens and , their join in the poset of opens, denoted , is defined as follows: if and only if there exists a zigzag (1) with and in which each zig is of the form or . It is immediate that this is an open in which and are both contained. Conversely, any open in which and are contained must contain this open , by property (3).
More generally, given any family of opens, their join in the poset of opens, denoted , is defined as follows: if and only if or there exists a zigzag (1) with and in which each zig is of the form for some . (We can leave out the clause if the family is inhabited.) The same argument applies as before. Note that each individual zigzag has finitely many zigs, and therefore involves finitely many of the opens , even when taking the join of an infinite family.
Finally, we must check the distributive law . That is, if directly through and through a zigzag of s (or ), then we need that through a zigzag in which each zig is related both through and through some (or ). To prove this (ignoring the trivial case where ), start with the zigzag of s, and apply the zigzag lemma to get a zigzag of s in which each zig involves values bounded by and . Then these zigs hold for as well, by property (2). Therefore, we may interpret each zig using for some , proving the desired result.
This frame of opens, interpreted as a locale, is the locale of real numbers. As usual, we denote this locale with the same symbol as the top element of its frame, in this case . (Of course, the true etymology of the symbols runs in the other order.)
Given rational numbers and , the open interval may itself be interpreted as an open in the real line, also denoted , as follows: let hold if every rational number strictly between and (in that order) is also strictly between and (in that order). In other words, we interpret ‘’ literally as comparing subsets of . It is straightforward to check that this condition does indeed define an open. There is now a third way to interpret ‘’; interpreting both intervals as opens in the real line, this states that the first is contained in the second. But again, it is easy to check that this is equivalent; (in the set-theoretic sense) if and only if whenever . Notice that whenever .
We can actually generalise this somewhat. Given any set of rational numbers and any set of rational numbers, we may define the open as follows: let hold if every rational number strictly between and (in that order) is greater than some element of and less than some element of . If the infimum of and the supremum of exist in the usual sense as rational numbers, then this agrees with the previous paragraph. If instead or is the set of all rational numbers, then we write for or for . In general, we may interpret as an extended upper real and as an extended lower real. Classically, every extended upper or lower real is either a real number, , or ; only the converse holds constructively. Notice that .
Since we will refer to them below, we will state for the record the complete definitions of and for a rational number . We have iff every rational number strictly between and is less than , that is iff or . Similarly, we have iff every rational number strictly between and is greater than , that is iff or . A fortiori, if , and if .
We think of each open as defining an open subset of the real line, but we can equally well think of it as defining a closed subset. The difference between these perspectives is reflected in complementary criteria for when a real number belongs to the set. So to make sense of this, we must identify the points of the real line.
We define a point of the real line to be a real number in this sense. Given such a point and a rational number , we write to mean that and to mean that . If we wish to refer to and directly, we may call the lower set of and the upper set.
Given a point and an open , we say that belongs to , written , if for some and ; that is, contains an interval from some element of the lower set to some element of the upper set of . We have since its lower and upper sets are inhabited. If and , with and , then , so ; note that this argument fails for infinitary intersections. (The converse, that and if , is immediate.) Dually, suppose that , as shown by some zigzag (since is impossible when and , by 3). Applying condition (4) of the definition of real number to each zag, we have or , for each . Checking all possibilities, and knowing that and in any case, we must have and for some . Then we have for some , whichever corresponds to the th zig. (The converse, that if for some , is immediate.)
Therefore, each point defines a completely prime filter on the frame of all opens, which is the definition of a point in general locale theory. Conversely, given such a completely prime filter , let be the set of all rational numbers such that the open interval (when interpreted as an open in the real line as defined above) is in , and symmetrically let be the set of all such that .
Given a point and an open , we say that co-belongs to , written , if we never have , , and , which is precisely the negation of the property that . We think of this condition as defining a closed set to which does belong. Notice that if and only if for each , giving the desired behaviour for an arbitrary intersection of closed sets (which corresponds to union of open sets under de Morgan duality). We also have that always fails, and if or . To prove that or whenever , however, we must use excluded middle; constructively, closed sets don't behave well under union.
A related question is whether we can reconstruct from the set of points which belong to it. This should be equivalent to the fan theorem, which is classically true and also accepted by Brouwer's school of intuitionism, but refuted in the Russian school in which all real numbers are assumed to be computable. (I should check this.) Arguably, the real lesson of these logical technicalities is that we should remember that opens, not points, are the fundamental concept in a locale.
The classical Heine–Borel theorem, as a statement about sets of real numbers, may fail constructively; this is related to the comments above about the fan theorem. But the beauty of the localic approach is that Heine–Borel necessarily holds when interpreted as a statement about opens in the locale of real numbers. To state the theorem, we must define what it means for a collection of opens to cover the unit interval. We will give an ad-hoc definition, but this may also be derived from the general theory of closed sublocales which allows us to interpret the unit interval as a compact locale in its own right.
An open cover of the unit interval is a collection of opens in the real line such that is the join of , , and the elements of .
Every open cover of the unit interval has a finite subcover.
The proof is almost embarrassingly simple. The key point is that the construction of joins in terms of zigzags involves only finite zigzags, even for an infinitary join.
Let be the join of , , and the elements of . If this equals , then in particular , a fact which is given by some zigzag . This zigzag involves only finitely many of the elements of ; let be the collection of these, and let be the join of , , and . Now if is any pair of rational numbers, we construct a zigzag showing that as follows: the zig , the zag , the zigzag from to , the zag , and the zig . This is always a valid zigzag, so . Therefore, the finite collection covers the unit interval.
This proof generalises immediately to any closed interval , for any upper real and any lower real. But note that we do not say ‘extended’ here; we need to find some rational number (analogous to in the proof above) smaller than and some rational number (analogous to above) larger than . So the Heine–Borel theorem applies only to bounded closed intervals.