\noindent{}\textcite{feydy-2011-half-reif} introduced the notion of \gls{half-reif}\todo{You need an example of what half reification is b -> c !!!} as an improvement over the use of \gls{reif}. They show that some of the problems and expenses of the use of \gls{reif} can be mitigated using this technique. In addition, the creation of propagators for \glspl{half-reif} of constraints can often be an easy process. It is not always possible, however, to use a \gls{half-reif} instead of a \gls{reif}. The authors identify the conditions required for the usage of \gls{half-reif} and provide an algorithm that flattens a subset of the \minizinc{} language using the technique. Crucially, this algorithm does \emph{not} directly generalize to the full \minizinc{} language. The chosen subset omits let-expressions, which can complicate the process. An identifier for the same expression can suddenly occur in multiple locations. This chapter re-evaluates the usage of \gls{half-reif} and provides the first full implementation of a flattener for \minizinc{} with support for \gls{half-reif}. In \cref{sec:half-intro,sec:half-propagation} we introduce the core concepts of \gls{half-reif} and propagators for half-reified \constraints{}, as discussed by \textcite{feydy-2011-half-reif}. An additional benefit of \gls{half-reif} is that its decomposition can be significantly smaller than the decomposition of a \gls{reif}. \Cref{sec:half-decomposition} shows the benefits of \gls{half-reif} when writing decompositions for \gls{mip} and \gls{sat} \solvers{}. In \cref{sec:half-context} we introduce our new context analysis algorithm: a way to determine where \gls{half-reif} can be used in \microzinc{}, and by extension \minizinc{}. Then, in \cref{sec:half-flattening}, we elaborate on how the usage of \gls{half-reif} changes the flattening process. Finally, the effects of propagators for half-reified constraints and the automatic introduction of half-reified is analysed in \cref{sec:half-experiments}.