The main idea of eager encoding is that the input formula is translated into a
propositional formula with all relevant theory-specific information encoded into
the formula. 

Given a formula $\varphi$, algorithms based on eager encoding operate in three steps:
\begin{enumerate}
\item Replace any unique $\mathcal{T}$-atom in the original formula $\varphi$ with
a fresh Boolean variable to get a Boolean formula $\hat{\varphi}$.
\item Generate a Boolean formula $\varphi_{cons}$ that constrains the values of the introduced
Boolean variables to preserve the information of the theory.
\item Invoke a SAT solver on the Boolean formula $\varphi_{prop} \coloneqq \hat{\varphi} \wedge \varphi_{cons}$
that corresponds to an equisatisfiable propositional formula to $\varphi$.
\end{enumerate}
