Proof of Bolzano's Theorem I know one proof of Bolzano's Theorem, which can be sketched as follows:
Set


*

*$f$ a continuous function in $[a,b]$ such that ${f(a)<0<f(b)}$.

*${A=\{x:a<x<b \text{ and } f <0\in[a,x] \}}$ 


*

*$A \neq \emptyset $

*$\exists \delta : a\leq x < a+\delta \Rightarrow x \in A
$

*$ b$ is an upper bound and $\exists \delta :b-\delta <x \leq b $ and $x$ is another upper bound of $A$.



From the previous observations, $A$ has a supremum $\alpha$, from which we show $f(\alpha) =0$ ad absurdum. 
Suppose $f(\alpha) <0$. Then 
$$\exists \delta : \alpha - \delta <x<\alpha +\delta \Rightarrow f(x) <0 $$
Since $\alpha$ is the l.u.b., $$\exists x_0 : \alpha - \delta <x_0<\alpha$$ or else $\alpha$ wouldn't be the l.u.b. 
Then $f<0$ in $[a,x_0]$. But if $\alpha < x_1 < \alpha +\delta$ then $f$ is also negative in $[x_0,x_1]$. Thus $f$ is negative in $[a,x_1]$, so $x_1 \in A$, which can't happen since $\alpha$ was the supremum.

The same procedure is used to rule out $f(\alpha) >0$, from where it is concluded that $f(\alpha) =0$.
My main concerns are:


*

*Is the theorem necesserailly proven using the lub property of $\mathbb R$? (I suppose so).

*How could another proof be constructed?

 A: You need the least upper bound property of $\mathbb R$, because since $\mathbb R$ is essentially $\mathbb Q$ closed under the operation of "taking l.u.b."'s, to see the necessity of it, you only need to notice that the result is not true over $\mathbb Q$ : take a continuous function $f : \mathbb R \to \mathbb R$ that has a unique zero $\alpha$ where $\alpha \notin \mathbb Q$ and $f(\alpha) = 0$, and then restrict your function to $\mathbb Q$, i.e. consider the same function but now $f : \mathbb Q \to \mathbb R$. Your function is still continuous over $\mathbb Q$, but it has no zeros anymore. Therefore, the l.u.b. property is necessary to do this proof.
I believe this answers your second question as well.
Hope that helps,
A: You really do need the completeness of $\Bbb R$ (the lub property). If you remove just one point $c$ from $\Bbb R$, you can easily find a counterexample to the intermediate value theorem: just define $$f:[c-1,c+1]\to\Bbb R:x\mapsto\begin{cases}-1,&\text{if }c-1\le x<c\\1,&\text{if }c<x\le c+1\;.\end{cases}$$ The problem here, of course, is that the set $(\leftarrow,c)$ has no supremum in $\Bbb R\setminus\{c\}$.
The same phenomenon can be duplicated for any linear order. Let $\langle X,\le\rangle$ be a linear order. To keep the description simple, I'll assume that $X$ has no endpoints, but this is not essential. Let $\tau$ be the order topology on $X$, the topology whose open sets are $\varnothing$ and arbitrary unions of open intervals in $X$.
Suppose that $A\subseteq X$ is bounded above but has no supremum. Fix $a\in A$ and an upper bound $b$ of $A$; clearly $a<b$. Let $L=\{x\in[a,b]:\exists a'\in A\,(x\le a')\}$; then $a\in L$, $b\notin L$, and for each $x\in L$, $[a,x]\subseteq L$. It's easy to see that if $L$ had a supremum $s$, $s$ would also be the supremum of $A$. Thus, $L$ has no supremum, and therefore $$L=\bigcup_{x\in L}[a,x)\quad\text{ and }\quad[a,b]\setminus L=\bigcup_{x\in[a,b]\setminus L}(x,b]$$ are open subsets of $[a,b]$.
Now define $$f:[a,b]\to\Bbb R:x\mapsto\begin{cases}-1,&\text{if }x\in L\\1,&\text{if }x\in[a,b]\setminus L\;.\end{cases}$$
Because both $L$ and $[a,b]\setminus L$ are open in $[a,b]$, $f$ is continuous, but it jumps from $-1$ to $1$ without passing through $0$.
A: There's an alternate proof that doesn't use the l.u.b. property, but instead uses the nested interval property, which happens to be equivalent to l.u.b.
So, given that any sequence of closed, bounded, nested intervals has a non-empty intersection, and that $f$ is a continuous function in $[a,b]$ such that $f(a)<0<f(b)$:  
We define $a_1 = a$, $b_1 = b$, $I_1 = [a_1, b_1]$ and $c_1 = \frac{a_1+b_1}{2}$. There's now three cases: if $f(c_1) = 0$, we set $c = c_1$ and we're done.
Else, if $f(c_1) < 0$, we set $a_2 = a_1$, $b_2 = c_1$, $I_2 = [a_2, b_2]$ and $c_2 = \frac{a_2+b_2}{2}$.
Else, if $f(c_1) > 0$, we set $a_2 = c_1$, $b_2 = b_1$, $I_2 = [a_2, b_2]$ and $c_2 = \frac{a_2+b_2}{2}$.
In either case, we now have an interval $I_2 \subset I_1$, $long(I_2) = \frac{1}{2^1} long(I_1)$, and $f(a_2)<0<f(b_2)$; intuitively, we're back at the start but with a smaller interval.
Continuing the process by induction, we end up with the sequences $a_n$ and $b_n$ with $f(a_n) \leq 0 \leq f(b_n) \ \forall n$ and the sequence $I_1 \supset I_2 \supset I_3 \supset I_4 \dots$ with $long(I_n) = \frac{1}{2^{n-1}}long(I_1)$; using the nested intervals property, we know that $\exists! c \in \cap_{n=1}^\infty I_n$. We also have that $a_n \leq c \leq b_n \ \forall n$. Given that $b_n - a_n = \frac{1}{2^{n-1}}long(I_1) \rightarrow 0$, we know that $\lim_{n\rightarrow\infty} a_n = \lim_{n\rightarrow\infty} b_n = c$, which implies $0 \leq \lim_{n\rightarrow\infty} f(a_n) = f(c) = \lim_{n\rightarrow\infty} f(b_n) \leq 0$, and $f(c) = 0$
