05 The Heine-Borel and Bolzano-Weirstrass Theorems


We looked at some consequences of the axioms for the real numbers. It's time to start applying the least upper bound axiom, which is the foundation for a number of important theorems in Calculus. But we start with the Heine-Borel Theorem, which is most likely new to you and which requires some preliminary definitions. In Section 1.4, you should pay attention not just to the theorems, but also to how the least upper bound property is used in proving them.

When the textbook discusses the Heine-Borel Theorm, it uses open intervals. I prefer to talk about "open sets" instead. Open intervals are open sets, but an open set can also be an arbitrary union of open intervals. Thus, (1,2), (1,2)(5,), and n=(n13,n+13) are all open sets.

Definition: An open set in R is a union of open intervals (possibly an infinite union). The empty set is also considered to be open. If X is a subset of R, an open cover is a collection of open sets {Oα|αA} such that XαAOα. A subcover for an open cover of X is a subset of the open cover that still covers X. And a finite subcover is a subcover that contains only finitely many sets.

There is an important alternative characterization of open sets. A set is open if whenever it contains a point, it also contains all "nearby" points. More rigorously:

Theorem: A subset O of R is open if and only if for every xO, there is an ε>0 such that (xε,x+ε)O.

Proof: Suppose O is open and xO. Since O is open and non-empty, it is a union of open intervals. Since xO, x is an element of one of those intervals. That interval must contain (xε,x+ε) for some ε>0. (Just take ε to be smaller than the distance between x and the closest endpoint of the interval.) Since that interval is a subset of O, it follows that (xε,x+ε)O.

Conversely, suppose that for every xO, there is an εx>0 such that (xεx,x+εx)O. Then O=xO(xεx,e+ε). (The union is contained in O because each set in the union is a subset of O; the union contains O because every xO is an element of one of the sets in the union, namely of (xεx,x+εx).) Since (xεx,x+εx) is an open interval, we have written O as a union of open intervals.

Heine-Borel Theorem: Let [a,b] be a bounded, closed interval. Every open cover of [a,b] has a finite subcover.

Proof: Let C={Oα|αA} be an open cover of [a,b]. Note that for any c[a,b], C is an open cover of [a,c]. Define X={c[a,b]|[a,c] has a finite subcover for C}. Since a is contained in some Oα, [a,a] has a subcover consisting of a single set. So aX, and X is non-empty. Since X[a,b], X is bounded. Therefore, as a bounded and non-empty set, X has a least upper bound by the least upper bound axiom. Let λ=lub(X). We will be done if we can show λX and λ=b, since that will mean by definition of X that [a,b] has a finite subcover for C.

We first show that λX. Because b is an upper bound for X, we know that λb, so λ[a,b]. Since C is an open cover of [a,b], there is a βA such that λOβ. Since Oβ is open, there is an ε>0 such that (λε,λ+ε)Oβ. Since λ=lub(X), there is an xX such that x>λε, by the theorem at the end of the third reading guide. Note that xOβ. Since xX, then by defintion of X, there is a finite subcover {Oα1,Oα2,,Oαk} of [a,x] from C. But then, adding Oβ to that finite subcover, we get that {Oβ,Oα1,Oα2,,Oαk} is a finite subcover of [a,λ]. And by definition of X, this means that λX.

Finally, we must show that λ=b. We know λb, so suppose, for the sake of contradiction, that λ<b. Using the same Oβ and ε as in the preceding paragraph, Let y=x+12min(ε,bλ). Then λ<y<b, and {Oβ,Oα1,Oα2,,Oαk} is a finite subcover of [a,y] from C. But then yX by definition of X, and the fact that y>λ contradicts the fact that λ is an upper bound for X.

It is not immediately clear why this theorem should be important, but the property "every open cover of X has a finite subcover" turns out to be useful for proving other things about X.


Section 1.4 also proves the Bolzano-Weirstrass Theorem. The idea is that if you have an infinite set of points in some finite part of R, then those points must "bunch up" at some point. The technical term is "accumulate."

Definition: Let XR. The point aR is said to be an accumulation point of X if for every ε>0, there is an xX such that 0<|ax|<ε. (That is, there is some point in X, other than a itself, that is within distance ε of a.)

The Bolzano-Weirstrass Theorem says that every bounded, infinite subset of R has an accumulation point. The textbook proves this using the least upper bound axiom. I want to give another, prettier proof, using the Heine-Borel Theorem.

Bolzano-Weirstrass Theorem: Any bounded, infinite subset of R has an accumulation point.

Proof: Let X be a bounded, infinte subset of X. Suppose, for the sake of contradiction that X does not have an accumulation point. That is, for every cR, there is some εc>0 such that no point of X, other than possibly c itself, is within distance ε of c. Another way of saying this is that the open interval (cεc,c+εc) is either empty (in the case cX) or contains just the single point c (in the case cX).

Let a be a lower bound for X, and let b be an upper bound for X, so that X[a,b]. We construct an open cover of [a,b]. Suppose c[a,b]. Let εc be as in the preceding paragraph, and let Oc=(cεc,c+εc). Then {Oc|c[a,b]} is an open cover of [a,b]. By the Heine-Borel Theorem, there is a finite subcover, {Oc1,Oc2,,Ock}. So, we have X[a,b]i=1kOci. But each of the sets Oci contains at most one point of X, so X can have no more than k elements.

The proof could also be stated as proving the contrapositive of the theorem, that is proving that If X is a subset of [a,b] that does not have an accumulation point, then X is finite. That would probably be nicer than using proof by contradiction.


It might be worth noting that the names "Heine-Borel Theorem" and "Bolzano-Weirstrass Theorem" are usually used for theorems that are more general than the ones stated here. We will encounter some of the generalizations when we study metric spaces.


(back to contents)