As soon as you write "Then by the definition of infimum", you are saying incorrect things.
First: if $b$ is the infimum of $A$, then for every $\epsilon\gt 0$ there exists at least one $a\in A$ such that $a\lt b+\epsilon$. However, you claim this holds for all elements of $A$, which is false. Take $A = (0,1)$. Then $\inf A = 0$; and it is indeed true that for every $\epsilon\gt0$ there exists at least one $a\in A$ with $a\lt\epsilon$; but if $\epsilon=\frac{1}{10}$, it is certainly false that every $a\in A$ is smaller than $\epsilon$.
Second: the elements of $A$ are not $a_n$s! They are suprema of infinite sequences of $a_n$s, and as such cannot be assumed to be $a_n$s. For example, if $a_n = 1-\frac{1}{n}$, then $A=\{1\}$, and no $a_n$ is equal to any element of $A$.
So that sentence is not just wrong, it's doubly wrong. The rest of course is now nonsense.
The second part does not seem to be proving anything; you are just asserting things. Why do the conditions imply the inequalities? What properties of the limit superior are you using? It's a mystery.
Rather: let $A_n = \mathop{\sup}\limits_{k\geq n}(a_k)$. Prove that $A_n$ is a decreasing sequence: $A_{n+1}\leq A_n$ for all $n\in \mathbb{N}$. Your set $A$ is precisely the set of $A_n$s.
Now let $b= \inf A = \inf\{ A_n\}$. By the definition of infimum, for every $\epsilon\gt 0$ there exists $N$ such that $b\leq A_N\lt b+\epsilon$. Since the sequence of $A_n$s is decreasing, then for all $n\geq N$ we have $b\leq A_n\leq A_N\lt b+\epsilon$, so in fact we have that $A_n\lt b+\epsilon$ ultimately. Moreover, since $a_n\leq A_m$ for all $n\geq m$, this implies that $a_n\lt b+\epsilon$ ultimately, as required.
For the second clause of the first part, let $\epsilon\gt 0$. Then $b-\epsilon\lt A_n$ for all $n$. Now remember what $A_n$ is. $A_n = \mathop{\sup}\limits_{k\geq n}(a_k)$; since $b-\epsilon\lt A_n$, there exists $k\geq n$ such that $b-\epsilon\lt a_k\leq A_n$. That is: for all $n$, there exists $k\geq n$ such that $a_k\gt b-\epsilon$, so $a_k\gt b-\epsilon$ frequently.
For part (2), let $b$ be a real number that satisfies the given properties. Since for every $\epsilon\gt 0$ we have that $b-\epsilon \lt a_n$ frequently, that means that $b-\epsilon$ is not an upper bound for $\{a_k\mid k\geq n\}$ for any $n$. Therefore, $\sup\{a_k\mid k\geq n\} = A_n\gt b-\epsilon$. This holds for all $A_n$, so $\liminf a_n = \inf\{A_n\mid n\in\mathbb{N}\} \geq b-\epsilon$. This holds for all $\epsilon\gt 0$, so $\liminf a_n \geq b$.
Now, since $b+\epsilon\gt a_n$ ultimately, then $b+\epsilon$ is an upper bound for $A_m$ all sufficiently large $m$; since the $A_m$ are decreasing, that means that $\inf A_m \lt b+\epsilon$, hence $\limsup a_n\lt b+\epsilon$; this holds for all $\epsilon\gt 0$, so $\limsup a_n \leq b$.
Now that we have established the inequalities (rather than merely asserting them), we have $b\leq \limsup a_n \leq b$, hence $b=\limsup a_n$, as claimed. QED
Best Answer
To say that $f$ is $O(g)$ is to say that there is a positive constant $c$ such that $|f(x)|\le c|g(x)|$ for all $x$ sufficiently close to $a$. This just imposes a kind of upper bound on $|f(x)|$ near $a$; it doesn’t say anything about how small $|f(x)|$ can be. Thus, it only limits $\sup|f(x)|$ as $x\to a$; $|f(x)|$ can oscillate wildly as long as it never gets bigger than $c|g(x)|$ in some neighborhood of $a$.
When you say that $f$ is $o(g)$, on the other hand, you’re saying that for every $c>0$ there is a neighborhood of $a$ in which $|f(x)|\le c|g(x)|$, which is precisely equivalent to saying that you can make $\left|\frac{f(x)}{g(x)}\right|$ as small as you like by taking $x$ close enough to $a$. But this is exactly what it means to say that $\lim_{x\to a}\left|\frac{f(x)}{g(x)}\right|=0$.
If this is your first exposure to big-O and little-o notation, you may find it useful to see the more common definitions here.