First look at the statement in the

Intermediate Value Theorem
writeup.
Since we are going to use the fact that

*f* is

continuous at a point

*p* in the proof twice
let us restate the definition here.

Given any *e>0* there exists a *d>0* such that
*|f(x)-f(p)|<e* for all *x* such that *|x-p|<d*.

Consider the set *X={x * in *[a,b] : f(x)<=0}.*
Now *X* is nonempty (since *a* is in it)
and *b* is an upper bound. Thus, if we define
*c=*sup *X*
then we know that *c* exists and is finite.
So our aim is to prove that *f(c)=0*.

Suppose that *f(c) > 0*. Continuity at *c* tells us
that, given some *e > 0* we have a *d > 0* such that
*f(x) > f(c)-e* for all *x* with *x > c-d* and
*x < c-d*.

There are two things to note, firstly we can choose *e* as small
as we like, so *f(x) > 0* in this range. Second, by the definition
of *c* we have *f(x) > 0*, as soon as *x > c*. Thus,
we have *f(x) > 0* for all *x* with *x > c-d*.
It follows that *c* is not the supremum after all, a contradiction.

Likewise suppose that *f(c) < 0*. This time continuity tells
us that for any *e > 0* we can choose a *d > 0* such that
*f(c+d) < f(c)+e*. Choosing *e* small enough, we have
*f(c+d) < 0*. This again contradicts the choice of *c*.

Thus we have *f(c)=0*. Finally, *c* really is in the open interval
since *f(a)* and *f(b)* are nonzero, by assumption.

If one knows something about the connectedness property then
one can give a rather shorter proof. But this relies on proving things
about connectedness which again use similar arguments to the above.