Does it exist a constructible basis for this vector space? I know that the vector space $\mathbb{R}$ over $\mathbb{Q}$ has a non countable Hamel basis whose elements cannot be find explicitly. This is a consequence of the fact that the existence of this basis can be proved  using the axiom of choice on a non countable set. So I ask myself if, for a countable subspace of $\mathbb{R}$ over $\mathbb{Q}$, as  the set of algebraic numbers $\mathbb{A}$, a basis can be explicitly constructed. 
My idea is that also in this case it is not possible because we can associate any algebraic number to a minimal polynomial, but we have not a general rule for solve such polinomials, so we cannot have any explicit expression for the elements of the basis. 
This is no more than an intuition and I'm not able to find a rigorous proof. Someone knows if a proof exists? Or such a basis can really be constructed? 
 A: Such a basis can indeed be constructed. In general, the following is a theorem of ZF:

If $V$ is a vector space over a field $k$ and $V$ is well-orderable, then $V$ has a basis.

(In particular, any countable subspace is by definition well-orderable.) The proof is the usual one: since $V$ is well-orderable, let $V=\{v_\alpha: \alpha<\kappa\}$ be a well-ordering of $V$; we can now construct a maximal linearly independent set via transfinite recursion. (Note that if $V$ is well-orderable and has more than one element then $k$ is well-orderable too, but we don't actually care about the well-orderability of $k$ here.)
Explicitly, the construction goes as follows: we start with $B_0=\emptyset$. For $\lambda$ limit, let $B_\lambda=\bigcup_{\beta<\lambda}B_\beta$. For successors, we set $$B_{\alpha+1}=B_\alpha\cup \{v_\alpha\}$$ if that set is linearly independent, and $$B_{\alpha+1}=B_\alpha$$ otherwise. Note that transfinite recursion works in ZF - the relevant axiom is Replacement, not Choice. And for countable spaces, even replacement is unnecessary.

Now, showing that the algebraic numbers are countable in ZF does take a second of thought. We can easily count the set of minimal polynomials; the problem is that a given minimal polynomial can represent multiple algebraic reals. The solution is to look at polynomials together with intervals: a code for an algebraic real is a pair $(p, a, b)$ where

*

*$p$ is a polynomial in $\mathbb{Q}$,


*$a$ and $b$ are rationals with $a<b$, and


*$p$ has exactly one zero in $(a, b)$.
Two codes for algebraic reals $(p, a, b)$ and $(q, c, d)$ are equivalent if the unique solution to $p=0$ in $(a, b)$ is the unique solution to $q=0$ in $(c, d)$. The set of algebraic codes is countable, so fix an enumeration $\{\sigma_i: i\in\mathbb{N}\}$ of them. Say that $i$ is a new index if $\sigma_i$ is not equivalent to $\sigma_j$ for any $i<j$; the set of codes with new indices then gives a counting of the algebraic numbers.
