\documentclass[11pt]{article}
\newif\ifslidegeometry
\slidegeometrytrue

\input{lecture-pre}
\input{common}
\begin{document}
\input{common-post}
\input{lecture-post}
\newcommand{\dateoflecture}{2006-02-15}
\setfooters{}

\renewcommand{\sublab}{}

\begin{slide}

  \vspring
  \vspring

  \begin{center}
    \sizeb \tcR{\bf MPRI Concurrency (course number 2-3) 2005-2006:}\\
    \tcR{\bf \pic}
    \\
    \dateoflecture
    \\
    \vspring
    {\sizez http://pauillac.inria.fr/$\sim$leifer/teaching/mpri-concurrency-2005/ }
    \\
    \vspring
    James J. Leifer 
    \\
    INRIA Rocquencourt
    \\
    \vspring
    James.Leifer@inria.fr
    \\
  \end{center}

  \vspring
  \vspring
\end{slide}

\begin{slide}

  \slidehead{A summary of the \pic}

  \vspring

  \begin{itemize}
  \item Core syntax
    
    \vspring
    
  \item Structural congruence ($\streq$)
    
    \vspring
    
  \item Reduction ($\red{}$)
    
    \vspring
    
  \item Labelled transitions ($\red{\alpha}$)
    
    \vspring
    
  \item Strong bisimulation ($\strongbisim$) and weak bisimulation ($\weakbisim$)
    
    \vspring
    
  \item Strong barbs ($P\barb x$) and weak barbs ($P\wbarb x$)

    \vspring

  \item ``Up to'' techniques (up to strong bisimilarity, up to contexts)

  \end{itemize}

  \vspring

  \vspring

\end{slide}


\begin{slide}

  \slidehead{Features}

  \vspring

  \begin{itemize}

  \item Sum ($\outp x y P + \outp w z Q$)

    \vspace*{1ex}

  \item Infinite behaviour ($\bangp P$ or recursive definitions)

    \vspace*{1ex}

  \item Polyadic channels ($\outp x \yvec P$, \ldots) 

  \end{itemize}
  
  \vspring

\end{slide}

\begin{slide}

  \slidehead{Core syntax}

  \vspring
  
  \begin{center}
    \begin{tabular}{>{$}l<{$}@{}>{$}l<{$}!{\qquad}l}
      P ::= {}
      & \outp x y P & output \\
      & \inp x y P  & input \tcR{($y$ binds in $P$)} \\
      & \newp x P    & restriction (new)  \tcR{($x$ binds in $P$)}\\
      & P \parp P   & parallel (par) \\
      & \zerop      & empty \\
    \end{tabular}
  \end{center}

  \vspring

  The free names of $P$ are written $\fn P$.
%
  \[\sizes 
  \begin{array}{lcl}
    \fn {\outp x y P} & = & \{x,y\} \cup \fn P \\
    \fn {\inp x y P}  & = & \{x\} \cup (\fn P \setminus \{y\}) \\
    \fn {\newp x P}   & = & \fn P \setminus \{x\} \\
    \fn {P \parp P'}  & = & \fn P \cup \fn {P'} \\
    \fn {\zerop}      & = & \emptyset \\
%    \fn {\bangp P}    & = & \fn P \\
  \end{array}\]

  \vspring

  We consider processes up to alpha-conversion:   provided $y' \notin
  \fn P$, we have
  % 
  \begin{gather*}
    \inp x y P = \inp x {y'} {\sub {y'} y P} \\
    \newp y P = \newp {y'} {\sub {y'} y P}
  \end{gather*}
  % 

  \vspring
\end{slide}

\begin{slide}
  \slidehead{Structural congruence ($\streq$)}

  The smallest equivalence relation such that:

  \begin{gather*}
    P \parp (Q \parp S) \streq (P \parp Q) \parp S \eqtag{str-assoc}
    \\
    P \parp Q \streq Q \parp P \eqtag{str-commut}
    \\
    P \parp \zerop \streq P \eqtag{str-id}
    \\
    \newp x {\newp y P} \streq \newp y {\newp x P} \eqtag{str-swap}
    \\
    \newp x \zerop \streq \zerop \eqtag{str-zero}
    \\
    \newp x P \parp Q \streq \newp x {(P \parp Q)} %
    \qquad\text{if $x \notin \fn Q$} \eqtag{str-ex}
%     \\
%     \bangp P \streq P \parp \bangp P \eqtag{str-repl}
  \end{gather*}

  \vspring

  And congruence rules:

  \vspring

  \begin{gather*}
    \infer{P \streq P'}{P \parp Q \streq P' \parp Q}
    \quad\maketag{str-par-l}
    \qquad\qquad
    \infer{P \streq P'}{\newp x P \streq \newp x P'}
    \quad\maketag{str-new}
  \end{gather*}
  
  \vspring

  Note: we don't close up by input or output prefixing.

  \vspring

\end{slide}

\begin{slide}
  \slidehead{Reduction ($\red{}$)}

  \vspring

  We say that $P$ reduces to $P'$, written $P \red{} P'$, if this can
  be derived from the following rules:
  % 
  \begin{gather*}
    \outp x y P \parp \inp x u Q \red{} P \parp \sub y u Q
    \eqtag{red-comm}
    \\[1ex]
    \infer{P \red{} P'}{P \parp Q \red{} P' \parp Q}
    \eqtag{red-par}
    \\[1ex]
    \infer{P \red{} P'}{\newp x P \red{} \newp x P'}
    \eqtag{red-new}
  \end{gather*}

  \vspring

  We close reduction by structural congruence:

  \vspring

  \begin{gather*}
    \infer{P \mathbin{{\streq} {\red{}} {\streq}} P'}{P \red{} P'}
    \eqtag{red-str}
  \end{gather*}
  
  \vspring

\end{slide}

% \begin{slide}
%   \slidehead{Application of new binding: from polyadic to monadic channels}

%   \vspring

%   Let us extend our notion of \emph{monadic} channels, which carry
%   exactly one name, to \emph{polyadic} channels, which carry a vector
%   of names, \ie
%   % 
%   \vspring
%   % 
%   \begin{center}
%     \begin{tabular}{>{$}l<{$}@{}>{$}l<{$}!{\qquad}l}
%       P ::= {}
%       & \polyoutp x {y_1,...,y_n} P & output \\
%       & \polyinp x {y_1,...,y_n} P  & input \tcR{($y_1,...,y_n$ bind in $P$)}
%     \end{tabular}
%   \end{center}

%   \vspring

%   Is there an encoding from polyadic to monadic channels?  We might
%   try:
%   % 
%   \begin{gather*}
%     \trans{\polyoutp x {y_1,...,y_n} P} = \outp x {y_1} {... \outp x
%       {y_n} {\trans{P}}} \\
%     \trans{\polyinp x {y_1,...,y_n} P} = \inp x {y_1} {... \inp x
%       {y_n} {\trans{P}}}
%   \end{gather*}
%   % 
%   but this is broken! Can you see why? The right approach is use new
%   binding:
%   % 
%   \begin{gather*}
%     \trans{\polyoutp x {y_1,...,y_n} P}
%     = \newp z {(\outp x z {\outp z {y_1} {... \outp z {y_n} {\trans{P}}}})} \\
%     \trans{\polyinp x {y_1,...,y_n} P}
%     = \inp x z {\inp z {y_1} {... \inp z {y_n} {\trans{P}}}}
%   \end{gather*}
%   % 
%   where $z \notin \fn P$ in both cases.  (We also need some
%   well-sorted assumptions.)

%   \vspring  

% \end{slide}

% \begin{slide}
%   \slidehead{Application of new binding: from synchronous to asynchronous ouput}

%   \vspring In distributed computing, sending and receiving messages
%   may be asymmetric: we clearly know when we have received a message
%   but not necessarily when a message we sent has been
%   delivered. (Think of email.)
%   % 
%   \begin{center}
%     \begin{tabular}{>{$}l<{$}@{}>{$}l<{$}!{\qquad}l}
%       P ::= {}
%       & \outact x y & output \\
%       & \inp x y P  & input \tcR{($y$ binds in $P$)}
%     \end{tabular}
%   \end{center}  
%   %

%   Nonetheless, one can always achieve synchronous sends by using an
%   \emph{acknowledgement} protocol:
%   % 
%   \begin{gather*}
%     \trans{\outp x y P}
%     = \newp z {(\polyoutact x {y,z} \parp \polyinp z {} {\trans{P}} )} \\
%     \trans{\inp x y P}
%     = \polyinp x {y,z} {(\polyoutact z {} \parp \trans{P})}
%   \end{gather*}
%   %
%   provided $z \notin \fn P$ in both cases.

%   \vspring

%  But this is cheating since
%   the encoding relies on being able to send tuples (\eg $\polyoutact x
%   {y,z}$).  Can you see how to use only monadic communication?

%   \vspring

% \end{slide}

\begin{slide}
  \slidehead{Labels}

  \vspring

  The labels $\alpha$ are of the form:
  
  \vspring

  \begin{center}
    \begin{tabular}{>{$}l<{$}@{}>{$}l<{$}!{\qquad}l}
      \alpha ::= {}
      & \outlab x y & output \\
      & \boutlab x y & bound output \\
      & \inlab  x y & input \\
      & \tau         & silent \\
    \end{tabular}
  \end{center}    
  
  \vspring  \vspring

  The free names $\fn \alpha$ and bound names $\bn \alpha$ are defined as follows:

  \vspring

  \begin{gather*}
    \begin{array}{r|cccc}
      \alpha &  \outlab x y & \boutlab x y & \inlab x y & \tau \\
      \hline
      \fn \alpha & \{x,y\}   & \{x\}  &  \{x,y\}  & \emptyset \\
      \bn \alpha & \emptyset & \{y\}  & \emptyset & \emptyset 
      \end{array}
  \end{gather*}

  \vspring
\end{slide}

\begin{slide}
  \slidehead{Labelled transitions ($P \red{\alpha} P'$)}

  \vspring

  Labelled transitions are of the form $P \red{\alpha} P'$ and are
  generated by:

  \vspring
  \begingroup
  \sizes

  \begin{gather*}
    \outp x y P \red{\outlab x y} P \quad\maketag{lab-out}
    % 
    \qquad\qquad
    \inp x y P \red{\inlab x z} \sub z y P \quad\maketag{lab-in}
    \\[0 pt plus 1fill]
    % 
    \infer{P \red{\alpha} P'}{P \parp Q \red{\alpha} P' \parp Q}
    \text{if $\bn \alpha \cap \fn Q = \emptyset$} %
    \quad\maketag{lab-par-l}
    \qquad\qquad
    \\[0 pt plus 1fill]
    \infer{P \red{\alpha} P'}{\newp y P \red{\alpha} \newp y P'}
    \text{if $y \notin \fn \alpha \cup \bn \alpha$}
    \quad\maketag{lab-new}
    \qquad\qquad
    % 
    \infer{P \red{\outlab x y} P'}{\newp y P \red{\boutlab x y}  P'}
    \text{if $y \neq x$}
    \quad\maketag{lab-open}    
    \\[0 pt plus 1fill]
    \infer%
    {P \red{\outlab x y} P' \qquad Q \red{\inlab x y} Q'}%
    {P \parp Q \red{\tau} P' \parp Q'} %
    \quad\maketag{lab-comm-l}
    % 
    \qquad
    \infer
    {P \red{\boutlab x y} P' \qquad Q \red{\inlab x y} Q'}%
    {P \parp Q \red{\tau} \newp y{(P' \parp Q')}} %
    \text{if $y \notin \fn Q$}%
    \quad\maketag{lab-close-l}
%     \\[0 pt plus 1fill]
%     \infer
%     {P \parp \bangp P \red{\alpha} P'}{\bangp P \red{\alpha} P'}
%     \quad\maketag{lab-bang}
  \end{gather*}
  \endgroup

  \vspring

  plus symmetric rules \maketag{lab-par-r}, \maketag{lab-comm-r},
  \maketag{lab-close-r}.

% FIXME: later i do this with a different lts for bang. perhaps wait
% until later.

  \vspring
  
\end{slide}


\begin{slide}
  \slidehead{Feature: sum}

  \vspring

  \begin{center}
    \begin{tabular}{>{$}l<{$}@{}>{$}l<{$}!{\qquad}l}
      P ::= {}
      & M & sum \\
      & P \parp P   & parallel (par) \\
      & \newp x P   & restriction (new)  \text{($x$ binds in $P$)} \\
%      & \bangp P    & replication (bang) \\
      M ::= {}
      & \outp x y P & output \\
      & \inp x y P  & input \text{($y$ binds in $P$)} \\
      & M + M & sum \\
      & \zerop
    \end{tabular}
  \end{center}

  \vspring

  Changes:
  \begin{itemize}
  \item structural congruence: $+$ is associative and
    commutative with identity $\zerop$.
    
  \item reduction: $(\outp x y P + M) \parp (\inp x u Q + N)
    \red{} P \parp \sub y u Q$.

  \item labelled transition:
    $ M + \outp x y P + N \red{\outlab x y} P $ \\
    $ M + \inp x y P + N \red{\inlab x z} \sub z y P$
  \end{itemize}

  \vspring

\end{slide}

\begin{slide}
  \slidehead{Feature: infinite behaviour via replication}

\vspring

Syntax: $P ::= ... \bangp P$
  
\vspring

Structural congruence: $ \bangp P \streq P \parp \bangp P$

\vspring

Labelled transitions (easy to state):
%
{\sizes\begin{gather*}
  \infer
     {P \parp \bangp P \red{\alpha} P'}{\bangp P \red{\alpha} P'}
     \text{if $\bn \alpha \cap \fn P = \emptyset$}
     \quad\maketag{lab-bang}
\end{gather*}}

Labelled transitions (easy to use):
%
  \begingroup
  \sizes
  \begin{gather*}
    \infer
    {P \red{\alpha} P'}{\bangp P \red{\alpha} P' \parp \bangp P}%
    \text{if $\bn \alpha \cap \fn P = \emptyset$}
    \quad\maketag{lab-bang-simple}
    \\[0 pt plus 1fill]
    \infer
    {P \red{\outlab x y } P' \qquad P \red{\inlab x y } P''}%
    {\bangp P \red{\tau} (P' \parp P'') \parp \bangp P}
    \quad\maketag{lab-bang-comm}
    \\[0 pt plus 1fill]
    \infer{P \red{\boutlab x y } P' \qquad P \red{\inlab x y } P''}%
    {\bangp P \red{\tau} \newp y {(P' \parp P'')} \parp \bangp P}%
    \text{if $y \notin \fn P$}
    \quad\maketag{lab-bang-close}
  \end{gather*}
  \endgroup

\vspring

\end{slide}


\begin{slide}
  \slidehead{Feature: infinite behaviour via process abstraction}

  \vspring

  We can define a \myemph{process abstractions}:
  % 
  \begin{gather*}
    F = \pabs {u_1, ..., u_k} P
  \end{gather*}

  \vspring

  Instantiation takes an abstraction and a vector of names and gives
  back a process:
  \begin{gather*}
    \pconcr F {x_1, ..., x_k} = \multisub{\sublet{x_1}{u_1},...,\sublet{x_k}{u_k}} P
  \end{gather*}

  \vspring

\end{slide}


\begin{slide}
  \slidehead{Feature: polyadic channels}

  \vspring

  In the syntax we extend our notion of \emph{monadic} channels, which
  carry exactly one name, to \emph{polyadic} channels, which carry a
  vector of names, \ie
  % 
  \vspring
  % 
  \begin{center}
    \begin{tabular}{>{$}l<{$}@{}>{$}l<{$}!{\qquad}l}
      P ::= {}
      & \polyoutp x {y_1,...,y_n} P & output \\
      & \polyinp x {y_1,...,y_n} P  & input \tcR{($y_1,...,y_n$
        pairwise distinct and bind in $P$)}
    \end{tabular}
  \end{center}

  \vspring

  We then generalise the reduction rule as follows:

    \begin{gather*}
      \outp x \yvec P \parp \inp x \uvec Q
      \red{}
      P \parp \sub \yvec \uvec Q
    \end{gather*}
    
  \vspring

  (The label transitions become complicated because some of the
  elements of an output may be bound and some free.)

  \vspring

\end{slide}

\begin{slide}
  \slidehead{Strong bisimulation}

  \vspring 

  A relation $\RR$ is a strong bisimulation if it is symmetric and for
  all $(P,Q) \in \RR$ and $P \red{\alpha} P'$, where $\bn \alpha \cap
  \fn Q = \emptyset$, there exists $Q'$ such that $Q \red{\alpha} Q'$
  and $(P',Q') \in \RR$.
  
  \vspring


   \begin{gather*}
     \begin{mygraph}
      !s{3}{1}
       [] ([] {P}="0"        [r] {P'}="1" )
      [d] ([] {Q}="4"        [r] {Q'}="5" )
      % 
      "0" (:@[|1.159pt]"1" ^{\alpha} , :@[|1.159pt]@{-}"4"_{\RR})
      "1" (:@[|1.159pt]@{--}"5" ^{\RR})
      "4" (:@[|1.159pt]@{-->}"5" ^{\alpha})        
     \end{mygraph}
  \end{gather*}

  \vspring

  Strong bisimilarity $\strongbisim$ is the largest strong
  bisimulation.

  \vspring

\end{slide}

\begin{slide}
  \slidehead{Weak bisimulation}

  \vspring 

  A relation $\RR$ is a weak bisimulation if it is symmetric and for
  all $(P,Q) \in \RR$ and $P \red{\alpha} P'$, where $\bn \alpha \cap
  \fn Q = \emptyset$, one of the following cases holds:

  \begin{itemize}
  \item If $\alpha=\tau$ then there exists $Q'$ such that
    % 
    $Q \redstar{} Q'$ and $(P',Q') \in \RR$.
  \item If $\alpha\neq\tau$ then there exists $Q'$ such that 
    $Q \redstar{}\red{\alpha}\redstar{} Q'$ \\ and $(P',Q') \in \RR$.
  \end{itemize}
  
  \vspring


   \begin{gather*}
     \begin{mygraph}
      !s{3}{1}
       [] ([] {P}="0"        [r] {P'}="1" )
      [d] ([] {Q}="4"        [r] {Q'}="5" )
      % 
      "0" (:@[|1.159pt]"1" ^{\tau} , :@[|1.159pt]@{-}"4"_{\RR})
      "1" (:@[|1.159pt]@{--}"5" ^{\RR})
      "4" (:@[|1.159pt]@{-->}"5" ^<>(1.05){*})        
     \end{mygraph}
     \qquad\qquad
      \begin{mygraph}
      !s{3}{1}
       [] ([] {P}="0"        [rrr] {P'}="1" )
      [d] ([] {Q}="4"        [r] {}="5a" [r] {}="5b" [r] {Q'}="5" )
      % 
      "0" (:@[|1.159pt]"1" ^{\alpha} , :@[|1.159pt]@{-}"4"_{\RR})
      "1" (:@[|1.159pt]@{--}"5" ^{\RR})
      "4" (:@[|1.159pt]@{-->}"5a" ^<>(1.05){*})        
      "5a" (:@[|1.159pt]@{-->}"5b" ^{\alpha})        
      "5b" (:@[|1.159pt]@{-->}"5" ^<>(1.05){*})        
     \end{mygraph}
   \end{gather*}

  \vspring

  Weak bisimilarity $\weakbisim$ is the largest weak
  bisimulation.

  \vspring

\end{slide}


\begin{slide}
  \slidehead{Strong bisimulation up to strong bisimilarity}

  \vspring

  Suppose for all $(P,Q) \in \RR$ and $P \red{\alpha} P'$, where
  $\bn \alpha \cap \fn Q = \emptyset$, there exists $Q'$ such that
  $Q \red{\alpha} Q'$ and $(P',Q') \in {\strongbisim}\RR{\strongbisim}$, and
  symmetrically.
%
  \vspring
%
   \begin{gather*}
     \begin{mygraph}
      !s{2}{1}
       [] ([] {P}="0" [r]       [r] {P'}="1" )
      [d] ([] {} [r]            [r] {\cdot}="7" )
      [d] ([] {} [r]            [r] {\cdot}="8" )
      [d] ([] {Q}="4" [r]       [r] {Q'}="5" )
      % 
      "0" (:@[|1.159pt]"1" ^{\alpha} , :@[|1.159pt]@{-}"4"_{\RR})
      "1" (:@[|1.159pt]@{--}"7" ^{\strongbisim})
      "7" (:@[|1.159pt]@{--}"8" ^{\RR})
      "8" (:@[|1.159pt]@{--}"5" ^{\strongbisim})
      "4" (:@[|1.159pt]@{-->}"5" ^{\alpha})        
     \end{mygraph}
  \end{gather*}

  \vspring

  Then ${\strongbisim}\RR{\strongbisim}$ is a strong bisimulation.
  Is $\RR$ also a strong bisimulation?

  \vspring
\end{slide}

% \begin{slide}
%   \slidehead{A simple example of up to}

%   \vspring

%   Consider the processes $P_0$ and $Q_0$:
%   \begin{align*}
%     P_0 &= \inp x u {\taup {\outact z u}}
%     \\
%     Q_0 &= \newp w {(\inp x u {\outact w u} \parp \inp w y {\outact z y})}
%   \end{align*}
%   which we would like to show are bisimilar, $P_0 \strongbisim Q_0$.
%   To do this we first define the relation $\RR = \{(P_0,Q_0) \}$ and
%   try to show the $\RR$ is a bisimulation.
%   \vspring

%\end{slide}


\begin{slide}
  \slidehead{Evaluation contexts}




  \vspring{}
  Let $\EvalCxt$ be the set of \myemph{evaluation contexts}; these are
  generated by the grammar:

  \vspring

  \begin{center}
    \begin{tabular}{>{$}l<{$}@{}>{$}l<{$}!{\qquad}l}
      D \in \EvalCxt ::= {}
      & -  & \\
      & D \parp P & \\
      & P \parp D  & \\
      & \newp x D 
    \end{tabular}
  \end{center}

  \vspring

  What isn't an evaluation context?
  % Answer: prefixing and replication

  \vspring

\end{slide}


\begin{slide}
  \slidehead{Strong bisimulation up to contexts}  
  \vspring

  Suppose for all $(P,Q) \in \RR$ and $P \red{\alpha} P'$, where
  $\bn \alpha \cap \fn Q = \emptyset$, there exists
  $D \in \EvalCxt$, $P''$, and $Q''$ such that $P' = D[P'']$ and $Q
  \red{\alpha} D[Q'']$ and $(P'',Q'') \in \RR$, and
  symmetrically.

  \vspring

  \begin{gather*}
    \begin{mygraph}
      !s{2.5}{1.8}
      [] ([] {P}="0" [r]       [r] {P'=D[P'']}="1"  [rr] {P''}="7" )
      [d] ([] {Q}="4" [r]       [r] {D[Q'']}="5"   [rr] {Q''}="8" )
      % 
      "0" (:@[|1.159pt]"1" ^{\alpha} , :@[|1.159pt]@{-}"4"_{\RR})
      "7" (:@[|1.159pt]@{--}"8" ^{\RR})
      "4" (:@[|1.159pt]@{-->}"5" ^{\alpha})        
    \end{mygraph}
  \end{gather*}
  
  \vspring


  Then
  $
    \{ (D[P],D[Q]) \setst (P,Q) \in \RR, D \in \EvalCxt \}
  $
  is a strong bisimulation.

  % I ``proved'' this in class by defining RR' to be the above
  % relation and showing the case that D=-|S.  Should
  % think carefully though about the proof methodology though. Are we
  % inducting on D? Hmm...

  \vspring

  Example: $\bangp {\bangp P} \strongbisim \bangp P$.
  
  % This example requires the ``join'' of the two up to techniques.
  % Should explain that.
  \vspring

\end{slide}

\begin{slide}
  \slidehead{Barbs}

  \vspring

  A process $P$ has a \myemph{strong barb} $x$, written %
  $P \barb x$ iff there exists $P_0$, $P_1$, and $\yvec$ such that %
  $P \streq \newp {\yvec} {(\outp x u {P_0} \parp P_1)}$ and %
  $x \not\in \yvec$.

  \vspring

  A process $P$ has a \myemph{weak barb} $x$, written %
  $P \wbarb x$ iff there exists $P'$ such that $P \redstar{} P'$ and
  $P' \barb x$.

  \vspring

  Notation: if $\zvec$ is empty, then $\newp \zvec Q = Q$.

  \vspring
\end{slide}

\end{document}

\begin{slide}
  \slidehead{Labelled transitions and structural congruence}

  \vspring

  \emph{Theorem:}

  \begin{enumerate}
  \item $P \red{} P'$ iff $ P \mathbin{{\red{\tau}}{\streq}} P'$.
  \item $P \mathbin{{\streq}{\red{\alpha}}} P'$ implies  $P \mathbin{{\red{\alpha}{\streq}}} P'$
  \end{enumerate}
    
  \vspring

%   \emph{Exercise:} Why does the converse of the second not hold?

%   \vspring

%   \emph{Exercise:} Show that the following pair of processes are both
%   in $(\red{})$ and $(\red{\tau}\streq)$: 
%   % 
%   \begin{gather*}
%     \newp z {\outact x z} \parp \inp x u {\outact y u} %
%     \qquad
%     \newp z {\outact y z}
%   \end{gather*}

%   \vspring
  
%   \slidehead{Fun with side conditions}

%   \emph{Exercise:} Show that the side condition on \maketag{lab-par-l}
%   is necessary by considering the process $\newp y {(\outp x y {\inact
%       y u}) \parp \outact z v} $ and an alpha variant.

%   \vspring


\end{slide}


\end{document}
% % \begin{slide}
% %   \slidehead{Strong bisimulation}

% %   \vspring 

% %   A relation $\RR$ is a strong bisimulation if for all $(P,Q) \in \RR$
% %   and $P \red{\alpha} P'$, where \tcR{$\bn \alpha \cap \fn Q = \emptyset$},
% %   there exists $Q'$ such that $Q \red{\alpha} Q'$ and $(P',Q') \in
% %   \RR$, and symmetrically.
  
% %   \vspring

% %   Strong bisimilarity $\strongbisim$ is the largest strong
% %   bisimulation.

% %   \vspring

% % %  FIXME: add picture!

% % \end{slide}

% \end{document}
% \documentclass[11pt]{article}
% \newif\ifslidegeometry
% \slidegeometrytrue

% \input{lecture-pre}
% \input{common}

% \begin{document}
% \input{common-post}

% \input{lecture-post}
% \newcommand{\dateoflecture}{25 November 2004}
% \setfooters{\dateoflecture}

% \begin{slide}

%   \vspring
%   \vspring

%   \begin{center}
%     \sizeb \tcR{\bf MPRI Concurrency (course number 2-3) 2004-2005:}\\
%     \tcR{\bf \pic}
%     \\
%     \dateoflecture
%     \\
%     \vspring
%     {\sizez http://pauillac.inria.fr/$\sim$leifer/teaching/mpri-concurrency-2004/ }
%     \\
%     \vspring
%     James J. Leifer 
%     \\
%     INRIA Rocquencourt
%     \\
%     \vspring
%     James.Leifer@inria.fr
%     \\
%   \end{center}

%   \vspring
%   \vspring
% \end{slide}

% \begin{slide}
%   \slidehead{Today's plan}

%   \vspring

%   \begin{itemize}
%   \item exercises from last week

%   \vspring

%   \item data structures

%   \vspring

%   \item coding definitions in terms of replication

%   \vspring

%   \item bisimulation theorems

%   \end{itemize}

%   \vspring
% \end{slide}


\end{document}

\begin{slide}
 \slidehead{Exercises for next lecture}
 
 \begin{enumerate}
   \item Define an encoding $\trans{\,}$ from the monadic synchronous \pic{} to the
     monadic asynchronous \pic{}.

   \item Prove that if $P \red{\outlab x y} P'$ then there exist
     $P_0$, $P_1$, and $\zvec$ such that
     % 
     \begin{gather*}
       P \streq \newp {\zvec} {(\outp x y P_0 \parp P_1)}
       \\
       P' \streq \newp {\zvec} {(P_0 \parp P_1)}
       \\
       \{x,y\} \cap \zvec = \emptyset
     \end{gather*}

     NB: the notation $\newp {\zvec} P$ is merely a convenient way of
     expressing a series of new bindings:
     % 
     \begin{gather*}
       \newp {\zvec} P =
       \begin{cases}
         P & \text{if $\zvec$ is empty}
         \\
         \newp w {(\newp {\wvec} P)} & \text{if $\zvec = w\wvec$}
       \end{cases}
     \end{gather*}
     
   \end{enumerate}
 
\end{slide}
\end{document}
%% Local IspellDict: british

%% Local Variables:
%% time-stamp-line-limit: 100
%% time-stamp-format: "%04Y/%02m/%02d %02H:%02M:%02S %u"
%% time-stamp-time-zone: "GMT"
%% End:
