@@ -199,3 +199,38 @@ This counterexample is a valid plan.
\subsection{Plan Relaxation Using Dependence Analysis}
Given a valid plan from the synthesizer, the \emph{relaxer} identifies those actions of the plan that must be executed in the given order, and removes constraints from all others.
The relaxer uses dependence analysis, a common technique in the field of compiler construction to identify instructions that can be reordered or parallelized.
\begin{example}
(Making coffee, continued)
\Cref{fig:makingCoffee:relaxation} shows two plans for making coffee, one as it could be output by the plan synthesizer, and one after relaxation.
The relaxer sees that \name{AddWater} and \name{AddBeans} are independent of each other, but that \name{MakeCoffee} depends on both.
The reason for this is that \name{AddWater} and \name{AddBeans} act on different regions of the state.