Let f be a real-valued function defined for every $x$ in the interval $0\le x \le 1$. Suppose there is a positive number M having the following property: for every choice of a finite number of points $x_1, x_2, ..., x_n$ in the interval $0 \le x \le 1$, the sum $$|f (x_1) + ... + f (x_n)| \le M$$ Let $S$ be the set of those $x$ in $0 \le x \le 1$ for which $f(x) \neq 0$. Prove that $S$ is countable.
I am having hard time to understand it's solution. The solution is as follows.
Proof : Let $S_n = \{x \in [0, 1] : |f (x)| \ge 1/n\}$ , then $S_n$ is a finite set by hypothesis. In addition, $S = \cup_{n=1}^\infty S_n$. So, S is countable.
There are infinite irrationals between $0$ and $1$, how does defining taking $x$ such that $|f(x)| \ge 1/n$ prove that the set is countable. Aren't we counting irrationals as well as rationals between $0$ and $1$?
I think it would be more intuitive to begin by assuming that the set $S$ in uncountable and arrive at contradiction that $|f (x_1) + ... + f (x_n)|$ is bounded. But I don't know how. Can we do this way?
Also can anyone elaborate that proof from manual so that I can understand?