Q:

Show that there exists $c\in[a,b]$ such that $f(c)=0$.

Question: Let $f:[a,b]\to\mathbb{R}$ be a continuous function with the property that for every $x\in[a,b]$, there exists $y\in[a,b]$ such that $|f(y)|\le\frac{1}{2}|f(x)|$. Show that there exists $c\in[a,b]$ such that $f(c)=0$.

Solution: Select any $x\in [a,b].$ Let $x=x_1$. Now by our hypothesis there exists $x_2\in [a,b]$ such that $|f(x_2)|\le \frac{1}{2}|f(x_1)|.$ Again by our hypothesis there exists $x_3\in[a,b]$ such that $|f(x_3)|\le \frac{1}{2}|f(x_2)|\le \frac{1}{4}|f(x_1)|.$ Continuing like this we will end up having a sequence $(x_n)_{n\ge 1}$ such that $$|f(x_n)|\le \frac{1}{2^{n-1}}|f(x_1)|, \forall n\in\mathbb{N}.$$ Notice that this implies that $$-\frac{1}{2^{n-1}}|f(x_1)|\le f(x_n)\le \frac{1}{2^{n-1}}|f(x_1)|, \forall n\in\mathbb{N}.$$ Thus by Sandwich theorem we can conclude that the sequence $f(x_n)$ is convergent and it converges to $0$.
Next notice that the sequence $(x_n)_{n\ge 1}$ is bounded. Thus, by Bolzano-Weierstrass theorem we can conclude that $(x_n)_{n\ge 1}$ has a convergent subsequence $(x_{n_k})_{k\ge 1}$. Let us assume that $(x_{n_k})_{k\ge 1}$ converges to $c$. Note that $a\le c\le b$. Now since $f$ is continuous on $[a,b]$, implies that $f$ is continuous at $c$. Thus by the sequential definition of limit we can conclude that $f(x_{n_k})$ converges to $f(c)$.
Now note that we have already shown that the sequence $f(x_n)$ converges to $0$, which implies that the subsequence $f(x_{n_k})$ also converges to $0$. This implies that $f(c)=0.$ This completes the proof.
It is also easy to see that if the inequality $|f(y)|\le \frac{1}{2}|f(x)|$ was replaced by the inequality $|f(y)|\le \lambda |f(x)|$ where $|\lambda|<1$ is arbitrary then also the statement in the question holds true.
Is this solution correct and rigorous enough and is there any other way to solve this problem?

A:

Another way, maybe easier, to solve the problem :
Since $|f|$ is continuous on $[a,b]$, it attains its minimum, i.e. there exists $x \in [a,b]$ such that
$$|f(x)| = \min_{t \in [a,b]} |f(t)|$$
Applying the property, there must exists $y \in [a,b]$ such that
$$|f(y)| \leq \frac{1}{2}|f(x)|$$
If $f(x) \neq 0$, this contradicts the fact that $|f(x)|$ is the minimum of $|f|$. So $|f(x)|=0$.

