What's the correct way for proving by Well Ordering Principle that any positive integer can be expressed as a sum of powers of two? I have the following proof.
Proof:
Let $C = \{ m \:| \:\forall\: k \in \mathbb{Z}^+, k < 2^{m + 1}, k \neq 2^{a_1} + 2^{a_2} + \ldots + 2^{a_i}, a_i < m + 1 \}$, now, let's assume that this is a nonempty set, assuming this we are saying that there is a minimum element in the set (because of the Well Ordering Principle), let this element be $m_0$, this means that for every positive integer less than $2^{m_0 + 1}$ such integer can't be expressed as a sum of powers of 2, it follows that the statement holds for $m_0 - 1$, but this is a contradiction, because if it's true then there are integers less than $2^{m_0 + 1}$ that can be expressed as a sum of powers of two, then such a set has no minimum element, meaning it's empty.
QED
Is this proof the correct way of proving such property? Is convinging enough? Thanks beforehand.
 A: Your argument is not correct, and even if were it does not prove what you want it to prove.
The error in the argument itself is that you do not consider the possibility that $m_0$ is the least natural number, which would prevent you from considering $m_0-1$. You need to do that case.
And the reason your argument does not prove what you want it to prove, even if it were correct, is that the fact that set $C$ is empty does not establish what you want.
(You should really also have a quantifier for $i$, and your last inequality should be a $j$, not an $i$; that is, your condition has free variables, which makes it not quite right).
Namely: assume you have shown your set is empty. That means that given $m$, $m\notin C$. Which means that the given condition is false. That is,
$$\neg\left(\forall k\in\mathbb{Z}^+, k\lt 2^{m+1}\implies\forall j\geq 0(\forall a_1,\ldots,a_j\in\mathbb{N}( k\neq 2^{a_1}+2^{a_2}+\cdots+2^{a_j})\right)$$
But the negation means that there exists $k$, $k\lt 2^{m+1}$, such that there is a $j\geq 0$ and nonnegative integers $a_1,\ldots,a_j$ such that $k=2^{a_1}+\cdots+w^{a_j}$.
So you are just proving that given any $m$, there is at least one integer $k$, less than $2^{m+1}$, which can be written as a sum of powers of $2$. 
Yet you are trying to prove that all integers less than $2^{m+1}$ can be written as a sum of powers of $2$, not just that there is at least one that works.
So your set should really have the condition
$$\exists k\in\mathbb{Z}^+\left( k\lt 2^{m+1}\wedge \forall j\geq 0(\forall a_1,\ldots,a_k\in\mathbb{M}\ (k\neq 2^{a_1}+\cdots+2^{a_j})\right).$$
That is, the least element of $C$ is the smallest $m_0$ for which there is a counterexample less than $2^{m_0+1}$; so if $m_0$ is not equal to $0$, then there is no counterexample less than $2^{m_0}$, but there is one between $2^{m_0}$ and $2^{m_0+1}$. 
Of course, with this condition your argument does not work, though. 
A: You need to keep track of "for all" and "there exists" statements.  Here's a proof that you might be looking for:
Proof: Let $S$ be the set of all positive integers not expressible as a sum of powers of $2$.  For the sake of contradiction, assume $S$ is nonempty.  By the Well-Order Principle, $S$ has a least element, say $m \in S$.  Clearly, $m\neq1$ since $1=2^0$, so $m>2^0$.  Let $n$ be the largest natural number such that $m>2^n$.  Then $m-2^n>0$ and $m-2^n<m$.  So by our choice of $m$, $m-2^n \notin S$.  Therefore, $m-2^n=2^{n_1}+2^{n_2}+\ldots +2^{n_k}$ for some $n_i$.  However, then we have $m=2^n+2^{n_1}+2^{n_2}+\ldots +2^{n_k}$, contradicting our assumption. QED
