[step:Prove compactness for covers by basic clopen sets]We prove that every cover of $S_n(A)$ by basic open sets has a finite subcover. Equivalently, we prove the finite-intersection property for complements of basic open sets.
Let $M_A$ denote the $\mathcal{L}(A)$-structure obtained from $M$ by interpreting each constant symbol named by an element of $A$ as that element, and define
\begin{align*}
\operatorname{Th}_A(M) := \{\sigma : \sigma \text{ is an } \mathcal{L}(A)\text{-sentence and } M_A \models \sigma\}.
\end{align*}
Thus $\operatorname{Th}_A(M)$ is the complete theory of $M$ with parameters from $A$ named.
Let $(\varphi_i)_{i \in I}$ be a family of $\mathcal{L}(A)$-formulas in variables $x_1,\dots,x_n$ such that the family of closed basic sets $([\varphi_i])_{i \in I}$ has the finite-intersection property. That means that for every finite subset $J \subset I$,
\begin{align*}
\bigcap_{j \in J} [\varphi_j] \neq \varnothing.
\end{align*}
We show that
\begin{align*}
\bigcap_{i \in I} [\varphi_i] \neq \varnothing.
\end{align*}
Let $\operatorname{Diag}_{\mathrm{el}}(M)$ denote the elementary diagram of $M$ in the language $\mathcal{L}(M)$, where $\mathcal{L}(M)$ is obtained from $\mathcal{L}$ by adding a constant symbol for every element of $M$. Consider the set of $\mathcal{L}(M)$-sentences
\begin{align*}
\Sigma := \operatorname{Diag}_{\mathrm{el}}(M) \cup \{\varphi_i(c_1,\dots,c_n) : i \in I\},
\end{align*}
where $c_1,\dots,c_n$ are new constant symbols not occurring in $\mathcal{L}(M)$.
We claim that every finite subset of $\Sigma$ is satisfiable. Let $\Sigma_0 \subset \Sigma$ be finite. Then $\Sigma_0$ contains only finitely many formulas among the family $\{\varphi_i(c_1,\dots,c_n) : i \in I\}$, say those indexed by a finite set $J \subset I$, and finitely many sentences from $\operatorname{Diag}_{\mathrm{el}}(M)$. Since $\bigcap_{j \in J} [\varphi_j] \neq \varnothing$, choose $p_J \in \bigcap_{j \in J}[\varphi_j]$. By the definition of $S_n(A)$, the type $p_J$ is consistent with $\operatorname{Th}_A(M)$, so there is an elementary extension $N_J \succ M$ and a tuple $a_J = (a_{J,1},\dots,a_{J,n}) \in N_J^n$ realizing every formula in $p_J$; in particular, $N_J \models \varphi_j(a_J)$ for all $j \in J$. Therefore $N_J$, interpreting $c_k$ as $a_{J,k}$ for $1 \le k \le n$, satisfies $\Sigma_0$.
By the first-order compactness theorem (citing a result not yet in the wiki: First-Order Compactness Theorem), the set $\Sigma$ has a model $N$. Since $N \models \operatorname{Diag}_{\mathrm{el}}(M)$, the interpretation of the constants for $M$ gives an elementary embedding of $M$ into $N$; identifying $M$ with its image, we may regard $N$ as an elementary extension of $M$. Let $a = (a_1,\dots,a_n) \in N^n$ be the tuple interpreting $(c_1,\dots,c_n)$. Then
\begin{align*}
N \models \varphi_i(a_1,\dots,a_n)
\end{align*}
for every $i \in I$.
Define the complete type of $a$ over $A$ by
\begin{align*}
\operatorname{tp}_N(a/A)
:= \{\psi(x_1,\dots,x_n) : \psi \text{ is an } \mathcal{L}(A)\text{-formula and } N \models \psi(a_1,\dots,a_n)\}.
\end{align*}
This is an element of $S_n(A)$, and it contains every $\varphi_i$. Hence
\begin{align*}
\operatorname{tp}_N(a/A) \in \bigcap_{i \in I} [\varphi_i].
\end{align*}
Thus every family of closed basic sets with the finite-intersection property has nonempty intersection, equivalently every cover by basic open sets has a finite subcover.[/step]