140/191
\begin{frame}[fragile,t]{Proof Rules for Partial Correctness}
  \begin{goal}{}
    \begin{malign}
    \rulecomposition
    \end{malign}
  \end{goal}
  \pause\medskip
  
  Convenient to read bottom up (also for the other rules):
  \pause\medskip
  
  In order to prove 
  \begin{talign}
    \hoaretriple{\aform}{\SeqComp{\aprogcxti{1}}{\aprogcxti{2}}}{\bform}
  \end{talign}
  \pause 
  we need to find an \emph{appropriate midcondition} $\eform$, 
  and prove 
  \begin{talign}
    & 
    \hoaretriple{\aform}{\aprogcxti{1}}{\eform}
    & &  \text{ and }  & &  
    \hoaretriple{\eform}{\aprogcxti{2}}{\bform}
  \end{talign}
  \pause
  We thereby split the goal into two subgoals:
  \begin{itemize}\vspace*{0.3ex}\setlength{\itemsep}{0.3ex}
    \item 
      execution of $\aprogcxti{1}$ 
      in a state satisfying $\aform$,\\
      we get to a state satisfying $\eform$
    \item
      execution of $\aprogcxti{2}$ 
      in a state satisfying $\eform$,\\
      we get to a state satisfying $\bform$
  \end{itemize}
  \vspace{10cm}
\end{frame}