Issue with Spivak's Solution Here was the problem:

Here is the solution from his solutions book: 

This is barely a proof.  How can he just say let $f(c) = 0$? How do you prove that $f(c) =0$ and how do you prove that $f(d) = 0$?
How can I use the IVT to prove that criterion? Thanks!
 A: Apart from the fact that the labels $c$ and $d$ in the graph have been interchanged, there’s nothing wrong with the argument. The set of $x\in[a,x_0]$ such that $f(x)=0$ is non-empty because it contains $a$, and it’s closed because $f$ is continuous, so it has a largest element, which we’ll call $c$. $f(x_0)\ne 0$, so $c<x_0$. The existence of $d$ follows by similar reasoning applied to the interval $[x_0,b]$.
If you don’t know about closed sets at this point, the problem is harder: you have to show that $A=\{x\in[a,x_0]:f(x)=0\}$ actually has a maximum. It certainly has a supremum (least upper bound) $u$, since it’s bounded above by $x_0$. And if $u\notin A$, there must be a sequence $\langle y_n:n\in\Bbb N\rangle$ in $A$ converging to $u$. Continuity of $f$ then implies that $\langle f(y_n):n\in\Bbb N\rangle$ converges to $f(u)$ and hence that $f(u)=0$, i.e., that $u\in A$ after all.
A: Here's the tricky part of the proof that's getting swept under the rug:

Lemma: There exists a largest $x \in [a,x_0]$ such that $f(x) = 0$

In order to prove this, it suffices that the set $\{x \in [a,x_0]: f(x) = 0\}$ is a closed subset of a bounded set.  Perhaps this approach is overly sophisticated, though.
If we want to stick to simpler methods, we can proceed as follows: define
$$
c = \sup\{x \in [a,x_0]:f(x) = 0\}
$$
Suppose that $f(c) \neq 0$. Then by continuity, there is a $\delta>0$ such that $f(x) \neq 0$ for $x \in (c-\delta,c)$, which means that $c$ cannot be the supremum as it was defined.
Thus, we conclude $f(c) = 0$, so that $c$ is the largest $x$ in $[a,x_0]$ such that $f(x) = 0$. 
A: To elaborate on my comments, I will establish the following:
IVT (Stronger form): Let $f$ be continuous on $[a, b]$ with $f(a) \neq f(b)$ and let $k$ be a number between $f(a)$ and $f(b)$. Then there is a least value of $x \in (a, b)$ for which $f(x) = k$ and there is a greatest value of $x \in (a, b)$ for which $f(x) = k$.
The proof below is taken from Hardy's Pure Mathematics (and this book emphasizes this stronger version of IVT) and is based on Dedekind's Theorem.
Let's assume that $f(a) < f(b)$ so that $f(a) < k < f(b)$. Divide the numbers $x \in [a, b]$ into two sets $L$ and $R$ such that $x \in L$ if the values of $f$ on each point of the interval $[a, x]$ are less than $k$. Put remaining numbers in $R$ so that $R = [a, b] - L$. It should be clear now that since $f(a) < k$ there is small neighborhood of type $[a, a + h]$ where values of $f$ are less than $k$, hence all points of $[a, a + h]$ belong to $L$ and hence $L$ is non-empty. Also clearly $b \in R$ (because $f(b) > k$) so that $R$ is also non-empty (in fact $R$ contains all points of interval $[b - \delta, b]$ for a suitable small $\delta$). It can be seen from the definitions of $L, R$ that they form a Dedekind cut and hence there is a unique number $\alpha \in [a, b]$ such that for all  numbers $x \in [a, \alpha)$ belong to $L$ and all numbers $x \in (\alpha, b]$ belong to $R$. Also it is clear that $a < \alpha < b$ (because $[a, a + h] \subseteq L$ and $[b - \delta, b] \subseteq R$).
We will show that $f(\alpha) = k$. On the contrary assume that $f(\alpha) < k$. Then by continuity there is a small interval of type $[\alpha - \epsilon, \alpha + \epsilon]\subseteq [a, b]$ where all the values of $f$ are less than $k$. But $\alpha - \epsilon < \alpha$ and so $\alpha - \epsilon \in L$ and hence all the values of $f$ in $[a, \alpha - \epsilon] $ are less than $k$. It follows that values of $f$ in interval $[a, a + \epsilon]$ are less than $k$. So $\alpha + \epsilon \in L$ and this is a contradiction because all numbers in $(\alpha, b]$ belong to $R$.
A similar contradiction can be attained if we assume that $f(\alpha) > k$. It follows that $f(\alpha) = k$. Also since all the numbers of $[a, \alpha)$ belong to $L$ it follows that the values of $f$ in $[a, \alpha)$ are less than $k$. Therefore $\alpha$ is the least value of $x \in [a, b]$ for which $f(x) = k$.
By modifying the definitions of $L, R$ we can show that there is a greatest number $\beta \in (a, b)$ for which $f(\beta) = k$. For this we need to define $R$ to contain all points $x$ of $[a, b]$ for which the values of $f$ in $[x, b]$ are greater than $k$ and $L = [a, b] - R$.
This proof of IVT based on Dedekind's theorem has the advantage that it gives a stronger result.
For the current question we can see that $c$ is the least value of $x \in [x_{0}, b]$ for which $f(x) = 0$ and $d$ is the greatest value of $x$ in $[a, x_{0}]$ for which $f(x) = 0$.
A: $$c:=\max\{x\in[a,x_0]|\ f(x)=0\}$$
By definition $c\in\{x\in[a,x_0]|\ f(x)=0\}$. Therefore $f(c)=0$. Similarly for $f(d)=0$.
More interesting is to show that such maximum exists. We can define instead
$$c':=\sup\{x\in[a,x_0]|\ f(x)=0\}$$
which always exists. By definition of supremum there is a sequence $x_n\in\{x\in[a,x_0]|\ f(x)=0\}$ such that $x_n\to c'$. But, because $f$ is continuous, then $f(c')=\lim f(x_n)=\lim 0=0$. Therefore $c'\in\{x\in[a,x_0]|\ f(x)=0\}$, i.e. $c'$ is actually a maximum.
The other interesting part is to show that $f(x)>0$ for $x\in[c,d]$. Assuming $f(x)=0$ for some $x\in[c,d]$ is a contradiction with the definition of $c$ and $d$. Assuming that $f(x)<0$ for some $x\in[c,d]$ gives a point in $[x,x_0]$ where $f$ vanishes. This again contradicts the definition of $c$ and $d$.
A: I think the problem (what actually bothers and confuses you here) is the choice of notation, not the proof by itself.
So, the problem requires to prove existence of $c$ and $d$ that satisfy certain condition.
The hint from the book starts with: Let $c$ is such and such and $d$ is such and such. And, the rest of the proof should follow.
However, the better, clearer way would be: Let $e$ is such and such and $f$ is such and such. Than you prove that $e$ and $f$ are truly $c$ and $d$ you are looking for. 
