Help to improve or give a better proof that every non-negative measurable function can be written as a sequence of simple functions 
Let $(X,\mathcal{A})$ be a measure space. Then for any non-negative measurable function $f$, there exists an increasing sequence $f_n$ of non-negative simple functions s.t. $f_n\nearrow f$.

The proof of this result is straightforward but I can't seem to find a neat proof this.
For a $n\in\mathbb{N}$ define
$A^k_n:=\left\{
                \begin{array}{ll}
                  [k2^{-n},(k+1)2^{-n}), & k=0,1,...,n2^n-1\\
                  [n,\infty), & k=n2^n
                \end{array}
              \right.$
To me it is clear by the definition of the $A_n^k$s that they partition $\mathbb{R}_{\geq0}$, but my first snag is showing this in a neat way. They only way I can think of to show that they are disjoint is a proof by contradiction argument. Similarly use a proof by contradiction to show that $\bigcup\limits_{k=0}^{n2^n}A_n^k =\mathbb{R}_{\geq0}$. This seems like a very tedious way to show something that is plainly evident (and not sure why this needs to be verified), so can anyone suggest a neater argument to show this?
Next define $f_n:X\rightarrow\mathbb{R}_{\geq0}$, by
$f_n(x):=\sum\limits^{n2^n}_{k=0}\frac{k}{2^n}\mathbf{1}_{A_n^k}(f(x))$.
Now as $f$ is measurable and the $A_n^k$s are Borel sets, then clearly  $f_n$ is a simple measurable function as the composition of measurable maps is measurable. The next snag I have is showing that $f_n$s are an increasing sequence, the only argument I can think of is very gawky and breaks it up into cases and is as follows:
Take a $x\in X$. If $f(x)\geq n+1$ then $f_n(x)=n<n+1=f_{n+1}(x)$.  
On the other hand if $f(x)<n+1$, then there is a unique (as $A_{n+1}^k$s partition $\mathbb{R}_{\geq0}$) $k^*\in \{0,1,...,(n+1)2^{n+1}-1\}$ such that $k^*2^{-n-1}\leq f(x)<(k^*+1)2^{-n-1}$ (where in fact $k^*=\max\{0\leq k\leq (n+1)2^{n+1)}|k2^{-n-1}\leq f(x)\})$, so $f_{n+1}(x)=k^*2^{-n-1}$.
Now if $k^*$ is even then $k^*=2l$ for some $l\in\mathbb{N}_0$ and so,
$\frac{l}{2^n}=\frac{2l}{2^{n+1}}\leq f(x)<\frac{2l+1}{2^{n+1}}<\frac{2l+2}{2^{n+1}}=\frac{l+1}{2^n}$, 
thus $f_n(x)=\frac{l}{2^n}=f_{n+1}(x)$.
If $k^*$ is odd then $k^*=2m+1$ for some $m\in\mathbb{N}_0$ and so,
$\frac{m}{2^n}=\frac{2m}{2^{n+1}}<\frac{2m+1}{2^{n+1}}\leq f(x)<\frac{2m+1+1}{2^{n+1}}=\frac{m+1}{2^n}$,
therefore $f_n(x)=\frac{m}{2^n}<\frac{2m+1}{2^{n+1}}=f_{n+1}(x)$.
To show that $\lim\limits_{n\rightarrow\infty}f_n=f$, is very easy so I won't bother with that. So if anyone can offer any assistance with the two snags I have or provide me with an alternative proof, it will be greatly appreciated. Thanks in advance.
 A: A slicker way: Enumerate the non-negative rationals as $\{q_n\}$ (with $q_0=0$), and let $B_n:=\{x: f(x)\ge q_n\}$. 


*

*Convince yourself that $f(x) =\sup_n q_n\cdot 1_{B_n}(x)$, for each $x$.

*Define $f_m(x) = \max_{1\le n\le m}q_n\cdot 1_{B_n}(x)$, $m=0,1,2,\ldots$. 
Clearly each $f_m$ is a simple function (taking only the values $q_0,q_1,\ldots,q_m$) and the sequence $\{f_m\}$ increases pointwise to $f$. 
A: *

*Why do you want to prove such a fact in a measure theory course? If you pressed me, I'd say that this is simply the uniqueness of the $n$th digit in a binary decimal expansion.

*Fix $n$. Consider the sets $U^k_n = f^{-1}(A^k_n)$. As these partition the domain $X$, it is enough to prove that $f_{n+1} \ge  f_n$ on each of these sets. The base case is trivial. Suppose $k\le n2^n - 1$. Note then that $f_n$ restricted to $U^k_n$ is just $ \frac k{2^n} \mathbf1[\frac{k}{2^n} \le f < \frac{k+1}{2^n}).$ (Forgive me for promoting a subscript to aid readability.) 
What's $f_{n+1}$ restricted to this set? Well, since $$ \frac{k}{2^n} \le f < \frac{k+1}{2^n} \iff \frac{2k}{2^{n+1}} \le f < \frac{2k+2}{2^{n+1}}$$
by the same reasoning for $f_n$, $f_{n+1}$ is a sum of two functions,
$$ f_{n+1} = \frac {2k}{2^{n+1}} \mathbf1\left[\frac {2k}{2^{n+1}} \le f < \frac {2k+1}{2^{n+1}}\right) + \frac {2k+1}{2^{n+1}} \mathbf1\left[\frac {2k+1}{2^{n+1}} \le f < \frac {2k+2}{2^{n+1}}\right)$$
and its clear now that we have the conclusion we seek, $f_{n+1} \ge  f_n$. For $k=n 2^n$, its similar: $f_{n+1}$ restricted to this set takes values $\ge \frac{k}{2^n}$.
What makes the above not too bad to write down is the fact that the partition $(A^k_{n+1})_{k}$ is a refinement of $(A^k_{n})_{k}$.
