>>7
To be pedantic, you can't just WLOG at the top for no reason and explain it at the end of your proof. You should make an assumption and generalize later, or define a lemma and use it in the proof of the theorem. There's also no reason to do it in binary when you could just do it in decimal instead to make it easy to visualize. Like this:
Lemma: For all X in [0,1), there is a sequence a_n in Q which converges to X.
Proof: Suppose X in [0,1) subset R. Define sequence a_n such that a_n = nth digit after the decimal in the decimal expansion of X. Note that a_n in N for all n. Define sequence b_n such that b_n = a_n / 10^n. Note that b_n in Q for all n. Define sequence c_n such that c_n = sum{i=1,n} b_n. For any e > 0 (epsilon), there is f = 10^(-i) < e, so X - c_i < e, therefore c_n is a sequence in Q which converges to X.
Proof of
>>1: Suppose X in R. Let Y be the integer part of X, such that Z = X - Y in [0,1). By the above lemma, there is a sequence c_n in Q which converges to Z. Let d_n = Y + c_n, then d_n converges to Y + limit of c_n, so d_n is a sequence in Q which converges to X. Q.E.D.
This is easier to visualize because for example:
X = 3.14159265...
Y = 3
Z = 0.14159265...
a_n = {1, 4, 1, 5, 9, 2, 6, 5, ...}
b_n = {1/10, 4/100, 1/1000, 5/10000, 9/100000, 2/1000000, 6/10000000, 5/100000000, ...}
c_n = {1/10, 14/100, 141/1000, 1415/10000, 14159/100000, 141592/1000000, 1415926/10000000, 14159265/100000000, ...} -> 0.14159265...
d_n = {31/10, 314/100, 3141/1000, 31415/10000, 314159/100000, 3141592/1000000, 31415926/10000000, 314159265/100000000, ...} -> 3.14159265... = X
Voila.