I'm hoping someone could review my proof for correctness, thanks!
Problem:
Show that every metrizable space with a countable dense subset has a countable basis.
Proof:
Let X be a metrizable space where the metric $d$ induces the topology on X. Let A be a countable subset of X that is dense in X. Then $\bar{A}$ = X.
Then we know that the set of all open balls B$_u$ = { B(x,$\epsilon$)| x$\in$ X, $\epsilon$ > 0 } form a basis for the topology on X.
Consider the following proposed basis:
C$_{a_1}$ = {B(a$_1$,$\epsilon$) | $\epsilon$ = $d$(a$_1$,b) where b $\in$ A for b $\ne$ a$_1$ }
C$_{a_2}$ = {B(a$_2$,$\epsilon$) | $\epsilon$ = $d$(a$_2$,b) where b $\in$ A for b $\ne$ a$_2$ }
$\vdots$
C$_{a_n}$ = ...
Now the above set is for every a$_i$ $\in$ A. Hence there are a countable number of sets C$_i$. Now each set C$_i$ has a countable number of elements so we have a countable union of countable sets which is itself countable.
Then have $C$ = $\bigcup$ C$_i$.
Now suppose we have some open set U. Then for every x $\in$ U there is a basis element B(x,$\epsilon$) containing x and B(x,$\epsilon$) $\subseteq$ U. Then we also have B(x,$\epsilon$/2) $\subseteq$ U.
We consider two cases:
If x $\notin$ A then x is a limit point of A since A is dense. Then there is some $a_1$ $\in$ B(x,$\epsilon$/2). Then set the distance H = d(x, a$_1$). Now consider the open ball B(x, H/2). Then some a$_2$ $\ne$ $a_1$ must be in B(x, H/2). Then the set B(a$_2$,r), where r = d(a$_2$,a$_1$), contains x since d(a$_2$,x) $\lt$ H/2 and r $\ge$ H/2. Note: B(a$_2$,r) is a member of C.
Below I show why r $\ge$ H/2:
$$ \text { Suppose r < H/2, then we have d(a$_1$,x) $\leq$ d(a$_1$,$a_2$) + d(a$_2$,x) $\le$ r + H/2. } $$
$$ \text { But d(a$_1$,x) = H so we have: H $\le$ r + H/2 } $$
$$ \text { But we have r < H/2 which leads to the RHS being less than H, a contradiction. Hence r $\ge$ H/2. } $$
$$ \text { So x is contained in the set B(a$_2$,r). } $$
Next we show that for any y $\in$ B(a$_2$,r) we have y$\in$ B(x,$\epsilon$).
We have: d(x,y) $\le$ d(x,a$_2$) + d(a$_2$,y) $\le$ H/2 + r
And: H/2 + r $\le$ H/2 + (3/2)H = 2H since:
r = d(a$_2$,a$_1$) $\le$ d(a$_2$,x) + d(x,a$_1$) $\le$ H/2 + H = (3/2)H.
Now H $\lt$ $\epsilon$/2 since a$_1$ was distance H from x within the B(x, $\epsilon$/2) open ball which contained a$_1$.
Then we have 2H $\lt$ $\epsilon$ which implies y $\in$ B(x,$\epsilon$). Hence we have shown that a set in our proposed basis C contains x and is fully contained within our epsilon neighborhood of x. However, we only considered the case where x is not an element of A.
The case where x $\in$ A can be approached in two ways. If x is a limit point of A we can follow the same idea as above.
If x is not a limit point of A then we show that x must be an isolated point i.e the set {x} is open. Consider if {x} was not open and x was not a limit point of A. Then some open set U containing x must have some point y $\notin$ A and no other points in A. But since U is open in a metric space we can find a B(y,$\epsilon$) $\subseteq$ U. This ball must contain points in A since y is a limit point of A, a contradiction since then U contains points in A. Hence if x is not a limit point of A it must be an isolated point. Since there are countably many points of A we can add these isolated point open sets to the set C and still maintain a countable proposed basis.
This final basis has now been confirmed to produce the same open sets that the uncountable basis B$_u$ produces since any point x $\in$ B(x,$\epsilon$) has an open set in C that contains x and is fully contained within B(x,$\epsilon$). The other direction that B$_u$ can generate every element in C is fairly obvious given it is a metric space. Hence X has a countable basis.