Correct proof of supremum property? Let $u$ be an upper bound of non-empty set $A$ in $\mathbb{R}$.
Prove that $u$ is the supremum of $A$
if and only if for all $\epsilon &gt; 0$ there is an $a \in A$ such that
$u-\epsilon &lt; a$.    

Lemma   

If $s = \sup(A)$, then
 $$ \exists \, a \in A, \, \,  \forall \epsilon &gt; 0 \, \, \text{such that} \, \, |s - a| &lt; \epsilon$$

Proof:

Suppose $\nexists \, a \in A $ such that $\forall \, \epsilon &gt; 0$, $|\sup(A) - a| &lt; \epsilon$. Then $\forall \, a \in A, \, \exists \, \epsilon_0&gt; 0$ such that $|\sup(A) - a| &gt; \epsilon_0$. This implies that $\sup(A) &gt; a + \epsilon_0$. Thus, $\exists\, s' \not\in A$ such that $\sup(A) &gt; s' &gt; a + \epsilon_1$ if we take $\epsilon_1 = \frac{\epsilon_0}{2}$. But we cannot have $s' &lt; \sup(A) : s' \not\in A$ so we have arrived at a contradiction and thus the lemma is proved.  

Proof:  

$(i \implies ii)$ if $u  = \sup(A)$, then, by the lemma, $\forall \, \epsilon &gt; 0$, \, $\exists \, a \in A$ such that $|u-a|&lt; \epsilon$. This implies $u-\epsilon &lt; a$.  

$(ii \implies i)$ If $\forall \, \epsilon &gt; 0, \, \exists \, a \in A$ such that $u - \epsilon &lt; a$, then $u-a &lt; \epsilon$ and by the lemma, $u =\sup(A)$.

Is this a complete and correct proof?
You can't base the proof of the statement on an obviously false lemma (at least with an incorrect formulation).

The proof is much simpler than that. 

Assume that $u$ is an upper bound for $A$ with the property that, for every $\varepsilon&gt;0$, there exists $a\in A$ with $u-\varepsilon&lt;a$.

By definition, the supremum is the least upper bound. So if $u$ is not the supremum, there is an upper bound $v$ of $A$ with $v&lt;u$.

Now take $\varepsilon=(u-v)/2$. By assumption there exists $a\in A$ with $u-\varepsilon&lt;a$; this becomes
$$
u-\frac{u-v}{2}&lt;a
$$
that is,
$$
\frac{u+v}{2}&lt;a
$$
which is a contradiction, because from $a\le u$ and $a\le v$ we obtain
$$
a\le\frac{u+v}{2}
$$

For the converse, suppose $u=\sup(A)$ and let $\varepsilon&gt;0$. Then $u-\varepsilon&lt;u$, so $u-\varepsilon$ is not an upper bound for $A$, which means there exists $a\in A$ with $u-\varepsilon&lt;a$.
By supremum we mean the least upper bound. So if $u = \sup A$ then $u$ is an upper bound for $A$ and any number less than $u$ is not an upper bound for $A$. Now if $\epsilon &gt; 0$ then $u' = u - \epsilon &lt; u$ and hence $u'$ is not an upper bound for $A$ and therefore it is exceeded by some member of $A$. So there is a member $a \in A$ such that $a &gt; u' = u - \epsilon$. This proves one part of the question.

For the converse let's assume that $u$ is an upper bound of $A$ such that if $\epsilon &gt; 0$ then there is an $a\in A$ such that $u - \epsilon &lt; a$. Then I prove that any number less than $u$ is not an upper bound for $A$. This is almost obvious. Let $u'$ be a number less than $u$ i.e. $u' &lt; u$ then $\epsilon = u - u' &gt; 0$. By what we have assumed it follows that there is an $a \in A$ with $u - \epsilon &lt; a$ i.e. $u' &lt; a$. This clearly shows that $u'$ is not an upper bound for $A$. So we have shown that $u$ is an upper bound for $A$ but any number $u' &lt; u$ is not an upper bound for $A$. So $u$ is the least upper bound for $A$ i.e. $u = \sup A$.

Another point which I want to emphasize here is that unless one has a thorough understanding of the concepts in real analysis it is not advisable to use so many symbols like $\exists, \forall, \Rightarrow$ together with $\epsilon$'s and $\delta$'s in writing proofs. It is better to write proofs in natural language (say English) with bare minimum uses of symbols. This helps a lot in understanding the concepts. Otherwise it looks like a silly game of symbol shunting without any rhyme or reason.

You can see the problem of symbol shunting in your statement $$\exists a \in A, \forall \epsilon &gt; 0\text{ such that }|s - a| &lt; \epsilon$$ This statement means that there is an $a \in A$ such that for all $\epsilon &gt; 0$ we have $|s - a| &lt; \epsilon$. This tells us that there is at least one particular $a \in A$ such that the result $|s - a| &lt; \epsilon$ holds for all $\epsilon &gt; 0$. This is not correct. Instead what you perhaps wanted to say was this:

If $s = \sup A$ then for every $\epsilon &gt; 0$ there exists an $a \in A$ such that $|s - a| &lt; \epsilon$.

Here you want to emphasize that for each $\epsilon$ the corresponding $a \in A$ may (or may not) be different. Thus one $a$ does not need to work for all $\epsilon$'s. The way to write this is $$\forall \epsilon &gt; 0, \exists a \in A\text{ such that }|s - a| &lt; \epsilon$$ This amply demonstrates the problem of symbol shunting. Unless one is expert (which one can become with some patience and practice) in such symbol shunting game, one is better off writing statements in natural language.