Prove that $A$ is dense if and only if any non-empty open set in $X$ has an intersection with $A$ Let $(X,d)$ be a metric space and let $A \subseteq X$.
Prove that $A$ is dense if and only if any non-empty  open set in $X$ has an intersection with $A$
In my proof $\text{Cl}(A)$ denotes the closure of $A$.
I need to prove, equivalently, that $\forall O$ non-empty open subset of $X$:
$$\text{Cl}(A)=X\Longleftrightarrow O\cap A\neq \emptyset$$
I feel my attempt has some logical errors, and I kindly request criticism and insight.
If my attempt is entirely wrong, please help me with alternative ways.
Thank you very much.
Here is my attempt:
PART 1 ($\Longrightarrow$):
We have $\text{Cl}(A) = X$, therefore by definition of the closure:
$$\forall a\in X:\forall N\in N(a), N\cap A\neq\emptyset$$
Every neighborhood of every point of $X$ intersects $A$.
Therefore one could add, every open neighborhood of every point of $X$ intersects $A$.
Let $N_O(a)\subseteq N(a)$ be the set of open neighborhoods of $A$, then by definition:
$$\forall a\in X: \forall O\in N_O(a),O\cap A\neq\emptyset$$
Therefore, every non-empty open neighborhood of every point of $X$ intersects  $A$.
In other words, every non-empty open subset of $X$ intersects  $A$.
PART 2 ($\Longleftarrow$):
We have $\forall O \subseteq X$ that $O \cap A \neq \emptyset$.
($O$ is non-empty and open)
Let $a \in O$.
Assume $\text{Cl}(A) \neq X$, therefore $\text{Cl}(A)^\text{C} \neq \emptyset$.
By negating the definition of the closure of $A$, we get $\forall a\in \text{Cl}(A)^\text{C}$:
$$\exists N \in N(a): N\cap A = \emptyset$$
$N$ is a neighborhood for $a$, therefore $\exists O$ open: $a \in O \subseteq N$.
Therefore, $O \cap A = \emptyset$ but $O \cap A \neq \emptyset$.
Contradiction, therefore $\text{Cl}(A) = X$.
 A: Be careful with your statements. You don't have to prove that

for every non empty open set $O$ of $X$, $\operatorname{Cl}(A)=X$ if and only if $O\cap A\ne\emptyset$

but rather

$\operatorname{Cl}(A)=X$ if and only if, for every non empty open set $O$ of $X$, $O\cap A\ne\emptyset$

which is quite a different statement.
Your part 1 is correct, but full of unnecessary bits. What you have to prove is that, assuming $\operatorname{Cl}(A)=X$, that every nonempty open set $O$ intersects $A$. This follows from the fact that, considering $x\in O$, $O$ is an open neighborhood of $x$; since $x\in\operatorname{Cl}(A)$, we conclude that $O\cap A\ne\emptyset$.
Part 2 is correct, although lengthier than needed. Suppose $x\notin\operatorname{Cl}(A)$. Then, by definition of closure, there exists an open neighborhood $O$ of $x$ such that $O\cap A=\emptyset$.
Note. No contradiction is necessary in part 2, we're proving the contrapositive, that is, if $\operatorname{Cl}(A)\ne X$, then there exists a nonempty open set $O$ such that $O\cap A=\emptyset$.
A: The logic of your attempt seems right but I am sure your argument can be shortened to make it clearer. For example:
If $\mathrm{Cl}(A)=X$, then for any non-empty open $U\subset X$, just pick an $x\in U$ and $U\cap A\neq\varnothing$ follows.
Conversely if $U\cap A\neq\varnothing$ for any non-empty open $U\subset X$, then each $x\in X$ lies in $\mathrm{Cl}(A)$ since each neighborhood of $x$ intersects with $A$.
