Prove that $U$ is an open set of a topological space $X$ iff for all $A\subset X$ we have $Cl(U\cap Cl(A))=Cl(U\cap A)$ I'm stuck with this one, is the 14th exercise on my notes and the most difficult so far.

Prove that $U$ an open set of a topological space $X$ iff for all $A\subset X$ we have $Cl(U\cap Cl(A))=Cl(U\cap A)$.

I've been struggling thinking both implications and I didn't get anything. What I only proved before is 
$$Cl(A\cap B)\subset Cl(A) \cap Cl(B).$$
I'd appreciate a hint or some help with this one.
Thanks for your time.
 A: Suppose $U$ is open. Let $x\in Cl(U\cap Cl(A))$, i.e. for every (open) neighborhood $V$ of $x$ we can find a point $y\in U\cap V \cap Cl(A)\neq \varnothing$. This means in turn that we can find a point $z\in U\cap V\cap A\neq \varnothing$, because $U\cap V$ is an open neighborhood of $y$ (here we used that $U$ is open). So for any open neighborhood $V$ of $x$ we have found a point in $V\cap U\cap A$, and so by definition $x\in Cl(U\cap A)$. Conversely, if $x\in Cl(U\cap A)$, for any open neighborhood $V$ of $x$ we can find a point $y\in U\cap V\cap A \subseteq U\cap V\cap Cl(A)\neq \varnothing$. Thus $x\in Cl(U\cap Cl(A))$.
Suppose now that $U$ is not open and consider $A=X\setminus U$. Then $Cl(U\cap A)=Cl(\varnothing )=\varnothing$, but since $U$ is not open we can find some $x\in U$ such that for all neighborhoods $V$ of $x$ we have $V\nsubseteq U$, i.e. $x\in Cl(A)$. So $x\in U\cap Cl(A)\subseteq Cl(U\cap Cl(A)) \nsubseteq Cl(U\cap A)=\varnothing$.
A: I'll use $\overline{B}$ for the closure of a set $B$. 
So step 1 is we need to see that for open sets $U$:
$$\overline{U \cap \overline{A}}= \overline{U \cap A}$$
Always $A \subseteq \overline{A}$, so $U \cap A \subseteq U \cap \overline{A}$ and so taking closures we get 
$$\overline{U \cap A} \subseteq \overline{U \cap \overline{A}}$$ without using anything about $U$.
To see the reverse inclusion, let $x \in \overline{U \cap \overline{A}}$ and let $O_x$ be any open set containing $x$. 
Then $O_x$ intersects $U \cap \overline{A}$, say $y \in O_x$ and $y \in U \cap \overline{A}$, so $y \in U$ and $ y \in \overline{A}$. Then $O_x \cap U$ is an open set containing $y \in \overline{A}$ so $U \cap O_x$ intersects $A$. In particular, such an intersection point is in $U \cap A$ and in $O_x$. As $O_x$ is an arbitary open neighbourhood of $x$, we
have shown that $x \in \overline{U \cap A}$ as required.
So $U$ open implies the identity in closures for all $A$.
To go from the identity for all $A$ to conclude that $U$ is open, 
define $A = X\setminus U$ and then 
$$\emptyset = \overline{\emptyset}= \overline{U \cap A} = \overline{U \cap \overline{A}}$$ so $U \cap \overline{A} = \emptyset$.
This implies that $\overline{A} \subseteq X\setminus U = A$ so $A$ is closed and $U$ is open.
A: For all $A\subseteq X$ we have $U\cap A\subseteq U\cap\overline{A}$
and consequently $\overline{U\cap A}\subseteq\overline{U\cap\overline{A}}$.
Further evidently $\overline{U\cap\overline{A}}\subseteq\overline{U\cap A}\iff U\cap\overline{A}\subseteq\overline{U\cap A}$
so it boils down to proving that:
$$U\text{ is open}\iff U\cap\overline{A}\subseteq\overline{U\cap A}\text{ for all }A\subseteq X$$
($\implies$)
Let $x\in U\cap\overline{A}$ and let $x\in V$ where $V$ is open.
Then also $V\cap U$ is open with $x\in V\cap U$ so from $x\in\overline{A}$
it follows that $V\cap U\cap A\neq\varnothing$. This shows that $x\in\overline{U\cap A}$.
$(\impliedby$)
Taking $A=U^{\complement}$ we find that $U\cap\mathsf{int}\left(U\right)^{\complement}=U\cap\overline{A}\subseteq\overline{U\cap A}=\overline{\varnothing}=\varnothing$
or equivalently $U\subseteq\mathsf{int}\left(U\right)$. 
This means that $U$ must be open.
