First we introduce the following notation: $$ \mathcal{N}_\infty:= \{N\subset \mathbb{N}| \mathbb{N} \text{\ }N \text{ is finite}\} $$ and $$ \mathcal{N}_\infty^\#:= \{N\subset \mathbb{N}| N \text{ is infinite}\} $$ In most textbooks of real analysis, the limit inferior is defined in one of the following two ways: $$ \liminf_n C_n = \bigcup_{n=1}^\infty \bigcap_{m=n}^\infty C_m $$ or $$ \liminf_n C_n = \left\{x \in \mathcal{X} | x\in C_k \text{ ultimately for all } k \right\} $$ We need to show that: $$ \liminf_n C_n = \bigcap_{N\in \mathcal{N}_\infty^\#} \overline{\bigcup_{n\in N}C_n} $$ where the overline denotes the set closure in the respective topology. For the limit superior we need to show that: $$ \limsup_n C_n = \bigcap_{N\in \mathcal{N}_\infty} \overline{\bigcup_{n\in N}C_n} $$ These properties appear in [p.110, 1] as exercises.
[1] R.T. Rockafellar and R. J-B. Wets, "Variational Analysis", Grundlehren der mathematischen Wissenschaften, vol. 317, 1998.