How to complete this particular proof of $cl(cl(A)) = cl(A)$ for a subset $A$ of topological space $X$? I want to prove that $cl(cl(A)) = cl(A)$ for a subset $A$ of topological space $X$. Given a subset $A$ of a topological space $X$, I have at hand the following two equivalent definitions about the closure of $A$ (denoted $cl(A)$): 

Definition 1: The closure of $A$ is the intersection of all closed sets containing $A$.
Definition 2: $x \in cl(A)$ if and only if every open set $U$ containing $x$ intersects $A$.

Based on the first definition, I can prove the statement by first showing that $A = cl(A) \Leftrightarrow A \textrm{ is closed}$. The statement $cl(cl(A)) = cl(A)$ follows from the fact that $cl(A)$ is closed.
However, I failed to prove the statement using the second definition directly, especially the $cl(cl(A)) \subset cl(A)$ part.

My trial of $cl(cl(A)) \subset cl(A)$: Take any $x \in cl(cl(A))$, we have (by definition 2) every open set $U$ containing $x$ intersects $cl(A)$. Suppose that $x \notin cl(A)$ by contrapositive, then there exists an open set $V$ containing $x$ that does not intersect $A$. Therefore, we get an open set $S$ containing $x$ such that (1) $S \cap cl(A) \neq \emptyset$ and (2) $S \cap A = \emptyset$.

So, how should I obtain the contradiction?
 A: The basic fact that you might be missing is the following:  If $\newcommand{\cl}{\mathrm{cl}}U \subseteq X$ is open and $A \subseteq X$ is arbitrary, then $U \cap A = \varnothing$ implies that $U \cap \cl ( A ) = \varnothing$.  (This is due to the fact that $U$ is an open neighbourhood of each of its elements which is disjoint from $A$, and so no element of $U$ can be an element of $\cl ( A )$.  Also worth noting is that $X \setminus U$ is a closed set and $A \subseteq X \setminus U$, and so $\cl ( A ) \subseteq X \setminus U$ by definition of $\cl ( A )$.)

You can also do this pretty directly.  Suppose that $x \in \cl ( \cl ( A ) )$, and let $U$ be any open neighbourhood of $x$.  Then $U \cap \cl ( A ) \neq \varnothing$, so pick some $y \in U \cap \cl ( A )$.  Note that $U$ is an open neighbourhood of $y$ and $y \in \cl ( A )$, and so $U \cap A \neq \varnothing$.
A: If $x\in S\cap cl(A)$ then $S\cap A\neq\emptyset$ by definition 2 because $S$ is an open set containig $x\in cl(A)$.
A: Take $x\in cl(A)$ and an open set $U$ such that $x\in U$. Because $x\in cl(cl(A))$, every open set containing $x$ will intersect $cl(A)$. Therefore, you have some $y\in cl(A)\cap U$. Because $y$ is in $cl(A)$, this means that $U$ intersects $A$. Therefore, $x\in cl(A)$ 
